Classes base para a implementação de abstrações
As classes base para a implementação de abstrações são classes projetadas para ajudar os desenvolvedores na implementação de classes abstratas e interfaces (abstrações). Eles fornecem alguns dos detalhes de implementação de 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 podem ser herdadas para definir uma classe de coleção fortemente tipada.
O exemplo de código a seguir demonstra o uso de Collection<T> classe para criar um objeto de coleção fortemente tipada.
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 o uso de Collection<T> classe para definir uma coleção fortemente tipada.
Public Class PointCollection
Inherits Collection(Of Point)
End Class
public class PointCollection : Collection<Point> {}
O CollectionBase classe é outro exemplo de um.Classe de base. NET Framework Esta classe ajuda os desenvolvedores implementar coleções não genéricas. Ao contrário de Collection<T>, CollectionBase não pode ser usado diretamente.
As classes base para a implementação de abstrações devem ser fornecidas como parte de uma biblioteca somente quando eles adicionam valor significativo para os 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, os membros públicos devem delegar trabalho para a classe base, em vez de herança a partir dele.
Considere as classes base abstratas, mesmo se não contiverem quaisquer membros abstratos. Isso se comunica claramente aos usuários que a classe destina-se exclusivamente a ser herdado de.
Considere a colocação de classes base em um namespace separado do cenário principal APIs. Por definição, as classes base destinam-se a cenários de extensibilidade avançada e não são interessantes para a maioria dos usuários.
Evite a nomeação de bases de classe com o sufixo de Base se a classe se destina a ser usado em APIs públicas.
Se a biblioteca expõe a classe base como um tipo de retorno ou tipo de parâmetro, não deve ter o Base sufixo.
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
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe