Compartilhar via


Design de interface

Uma interface define as assinaturas de um conjunto de membros implementadores devem fornecer. Interfaces não podem fornecer detalhes de implementação para os membros. Por exemplo, a ICollection interface define relacionados ao trabalho com conjuntos de membros. Cada classe concreta que implementa a interface deve fornecer os detalhes de implementação para theses membros. Embora classes podem herdar somente de uma classe única, podem implementar várias interfaces. As diretrizes a seguir ajudam a garantir que suas interfaces foram criadas corretamente.

Defina uma interface, se você precisar de algumas funcionalidades comuns para ter o suporte de um conjunto de tipos que inclui alguns tipos de valor.

Tipos de valor devem herdar de ValueType. Por esse motivo, classes abstratas não podem ser usados para especificar um contrato para tipos de valor; interfaces devem ser usados em vez disso.

Considere a possibilidade de definir uma interface se você precisar oferecer suporte à sua funcionalidade em tipos que herdam já algum Outros tipo.

Evite usar o marcador de interfaces (interfaces com nenhum membro).

Atributos personalizados fornecem uma maneira para marcar um tipo. Para obter mais informações sobre atributos personalizados, consulte Codificando Atributos Personalizados. Atributos personalizados têm preferência quando você pode adiar a verificação para o atributo até que o código está sendo executado. Se seu cenário requer verificação de time de compilar, você não pode cumprir essa diretriz.

Fornecem pelo menos um tipo é uma implementação de uma interface.

Isso ajuda a garantir que a interface está bem projetada e pode ser implementada sem muita dificuldade. The Int32 classe fornece uma implementação para o IComparable interface.

Fornecer pelo menos um membro que consome cada interface que você definir (por exemplo, um método que usa a interface sistema autônomo um parâmetro ou uma propriedade digitada sistema autônomo a interface).

Isso é outro mecanismo que ajuda a garantir que a interface bem projetada e pode ser usada sem muita dificuldade.

Não adicione membros a uma interface que anteriormente foi remetida.

Adicionar novos membros serão desfeitos código implementado a versão anterior da interface. Este é um dos principais motivos por que, em geral e where possível, classes são interfaces preferível. Para obter mais informações, consulte Escolhendo entre classes e interfaces.

Se a definição de remessa da interface requer membros adicionais, você poderá implementar uma nova interface e os membros apropriados para consumi-lo.

Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.

Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Conceitos

Escolhendo entre classes e interfaces

Outros recursos

Diretrizes de design de tipo

Diretrizes de Design para desenvolvimento bibliotecas de classe