Interfaces e tipos abstratos
Interfaces e tipos abstratos são os dois mecanismos para especificação de abstrações de programação. Uma abstração Especifica um contrato que herdeiros ou implementadores devem seguir. Tipos abstratos têm a opção de fornecer detalhes de implementação; interfaces não podem fornecer qualquer detalhe de implementação.
Não fornece abstrações, a menos que eles são testados com o desenvolvimento de diversas APIs que consomem as abstrações e implementações concretas.
Se você enviar abstrações sem testá-los em cenários reais, você provavelmente perderá questões difíceis ou impossível de corrigir sem introduzir compatibilidade problemas em versões futuras.
escolher cuidadosamente entre uma classe abstrata e uma interface ao criar uma abstração.
Para obter mais informações detalhadas sobre como selecionar um tipo abstrato ou interface, consulte Escolhendo entre classes e interfaces.
Considere fornecer testes de referência para implementações concretas de abstrações.Esses testes devem permitir que os usuários testar se suas implementações de implementam corretamente o contrato.
Testes de referência são testes que permitem que você implementou uma interface corretamente. Por exemplo, um teste para ICollection<T> pode verificar essa chamada após a Add método duas vezes em uma instância de implementação da interface do Count propriedade aumenta a dois.
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
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe