Existem alguns assuntos que vêm dessa pergunta:
- interfaces versus classes
- qual classe específica, de várias classes iguais, coleção, lista, matriz?
- Classes comuns versus coleções de subitens ("genéricos")
Convém destacar que é uma API orientada a objetos
interfaces versus classes
Se você não tem muita experiência com interfaces, recomendo manter as aulas. Eu vejo muitas vezes os desenvolvedores pulando para interfaces, mesmo que não seja necessário.
E, finalize com um design de interface ruim, em vez de um bom design de classe, que, a propósito, pode eventualmente ser migrado para um bom design de interface ...
Você verá muitas interfaces na API, mas não se apresse, se não precisar.
Você acabará aprendendo como aplicar interfaces ao seu código.
qual classe específica, de várias classes iguais, coleção, lista, matriz?
Existem várias classes em c # (dotnet) que podem ser trocadas. Como já mencionado, se você precisar de algo de uma classe mais específica, como "CanBeSortedClass", torne explícito na sua API.
O usuário da API realmente precisa saber que sua classe pode ser classificada ou aplicar algum formato aos elementos? Em seguida, use "CanBeSortedClass" ou "ElementsCanBePaintedClass", caso contrário, use "GenericBrandClass".
Caso contrário, use uma classe mais geral.
Classes de coleção comuns versus coleções de subitens ("genéricos")
Você verá que existem classes que contêm outros elementos e pode especificar que todos os elementos devem ser de um tipo específico.
Coleções genéricas são aquelas classes que você pode usar a mesma coleção, para vários aplicativos de código, sem precisar criar uma nova coleção, para cada novo tipo de subitem, como este: Coleção .
Seu usuário da API precisará de um tipo muito específico, o mesmo para todos os elementos?
Use algo parecido List<WashingtonApple>
.
Seu usuário da API precisará de vários tipos relacionados?
Expor List<Fruit>
para o seu API, e usar List<Orange>
List<Banana>
, List<Strawberry>
internamente, onde Orange
, Banana
e Strawberry
são descendentes de Fruit
.
Seu usuário da API precisará de uma coleção de tipos genéricos?
Use List
, onde todos os itens são object
.
Felicidades.