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, o ICollection interface define os membros relacionados ao trabalhar com coleções. Cada classe concreta que implementa a interface deve fornecer os detalhes de implementação para membros de theses. Enquanto as classes podem herdar somente de uma classe única, eles podem implementar várias interfaces. As diretrizes a seguir ajudam a garantir que suas interfaces são criadas corretamente.

Defina uma interface, se você precisar de algumas funcionalidades comuns a serem suportados por um conjunto de tipos que inclui alguns tipos de valor.

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

Considere a definição de uma interface se você precisar oferecer suporte a sua funcionalidade em tipos que herdam já a algum outro tipo.

Evite usar interfaces do marcador (interfaces sem os membros).

Atributos personalizados fornecem uma maneira para marcar um tipo. Para obter mais informações sobre atributos personalizados, consulte Codificando Atributos Personalizados. Atributos personalizados são preferidos quando você pode adiar a verificação para o atributo até que o código está em execução. Se o seu cenário Exigir verificação do tempo de compilação, você não pode cumprir essa diretriz.

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

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

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

Este é 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 foi previamente fornecidos.

A adição de novos membros interromperá o código implementado a versão anterior da interface. Este é um dos principais motivos por que, em geral e sempre que possível, as 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ê pode implementar uma nova interface e os membros apropriados para acessá-lo.

Portions Copyright 2005 Microsoft Corporation. Todos os direitos reservados.

Portions Copyright Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre as diretrizes de design, consulte a "diretrizes de Design do Framework: Convenções, idiomas e padrões de reutilizável.Bibliotecas de rede" catálogo por Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Conceitos

Escolhendo entre Classes e Interfaces

Outros recursos

Diretrizes de Design do tipo

Diretrizes de Design para desenvolvimento bibliotecas de classe