Classes base para implementar o abstrações
Classes base para a implementação de abstrações são classes projetados para ajudar os desenvolvedores implementar classes abstratas e interfaces (abstrações). Eles fornecem alguns dos detalhes de implementação para uma abstração e em alguns casos, eles podem ser utilizáveis sem herança. Por exemplo, Collection<T> pode ser usado para criar uma coleção ou pode ser herdada de definir uma classe coleção fortemente tipado.
O exemplo de código a seguir demonstra usando o Collection<T> classe para criar um objeto da coleção fortemente tipado.
Public Class PointManager
Implements IEnumerable
Private pointCollection As Collection(Of Point) = New Collection(Of Point)
Public Sub AddPoint(ByVal p As Point)
pointCollection.Add(p)
End Sub
Public Function RemovePoint(ByVal p As Point) As Boolean
Return pointCollection.Remove(p)
End Function
Public Function GetEnumerator() As IEnumerator _
Implements IEnumerable.GetEnumerator
Return pointCollection.GetEnumerator
End Function
End Class
public class PointManager : IEnumerable
{
Collection<Point> pointCollection = new Collection<Point>();
public void AddPoint(Point p)
{
pointCollection.Add(p);
}
public bool RemovePoint(Point p)
{
return pointCollection.Remove(p);
}
public IEnumerator GetEnumerator()
{
return pointCollection.GetEnumerator();
}
}
O exemplo de código a seguir demonstra usando o Collection<T> classe para definir uma coleção fortemente tipado.
Public Class PointCollection
Inherits Collection(Of Point)
End Class
public class PointCollection : Collection<Point> {}
The CollectionBase classe é outro exemplo de uma classe base do .NET estrutura. Essa classe ajuda a desenvolvedores implementar coleções não genéricas. Ao contrário de Collection<T>, CollectionBase não pode ser usado diretamente.
Classes base para a implementação de abstrações devem ser fornecidas sistema autônomo parte de uma biblioteca somente quando adicionam um valor significativo para sistema autônomo desenvolvedores que usam a biblioteca. No caso em que uma classe base ajuda somente na implementação de uma biblioteca, a classe base não deve ser visível publicamente. Para usar uma classe base internamente para simplificar o desenvolvimento de biblioteca, membros públicos devem delegado o trabalho para a classe base, em vez de herança dele.
Considere a possibilidade de transformar classes base abstratas, mesmo se eles não tiverem quaisquer membros abstratos.Isso se comunica claramente aos usuários a classe projetado exclusivamente para ser herdadas de.
Considere a colocação de classes base em um espaço para nome separado do cenário principal APIs.Por definição, classes base servem para cenários de extensibilidade avançada e não são interessantes para a maioria dos usuários.
Evite nomes bases de classe com o sufixo base se a classe se destina a ser usado em APIs públicas.
Se a biblioteca expõe a classe base sistema autônomo um tipo de retorno ou parâmetro de tipo, ele não deve ter o Base sufixo.
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