Il y a quelques sujets qui découlent de cette question :
- interfaces et classes
- quelle classe spécifique, parmi plusieurs classes similaires, collection, liste, tableau ?
- Classes communes et collections de sous-éléments ("génériques")
Vous pouvez souligner que c'est un Orienté objet A.P.I.
interfaces et classes
Si vous n'avez pas beaucoup d'expérience avec les interfaces, je vous recommande de vous en tenir aux classes. Je vois souvent des développeurs passer aux interfaces, même si ce n'est pas nécessaire.
Et, finir par faire un mauvais design d'interface, au lieu d'un bon design de classe, qui, d'ailleurs, peut éventuellement, être migré vers une bonne conception d'interface ...
Vous verrez beaucoup d'interfaces dans l'A.P.I., mais, ne vous précipitez pas, si vous n'en avez pas besoin.
Vous apprendrez éventuellement à appliquer les interfaces à votre code.
quelle classe spécifique, parmi plusieurs classes similaires, collection, liste, tableau ?
Il existe plusieurs classes en c# (dotnet) qui peuvent être interchangées. Comme déjà mentionné, si vous avez besoin de quelque chose d'une classe plus spécifique, comme "CanBeSortedClass", alors faites-le explicitement dans votre A.P.I..
Est-ce que votre utilisateur A.P.I. a vraiment besoin de savoir que votre classe peut être triée, ou appliquer un certain format aux éléments ? Alors utilisez "CanBeSortedClass" ou "ElementsCanBePaintedClass", sinon, utilisez "GenericBrandClass".
Sinon, utilisez une classe plus générale.
Classes de collections communes et collections de sous-éléments ("génériques")
Vous constaterez qu'il existe des classes qui contiennent d'autres éléments, et vous pouvez spécifier que tous les éléments doivent être d'un type spécifique.
Collections génériques sont ces classes que vous pouvez utiliser la même collection, pour plusieurs applications de code, sans avoir à créer une nouvelle collection, pour chaque nouveau type de sous-article, comme ceci : Collection .
L'utilisateur de votre A.P.I. va-t-il avoir besoin d'un type très spécifique, identique pour tous les éléments ?
Utilisez quelque chose comme List<WashingtonApple>
.
Votre utilisateur d'A.P.I. va-t-il avoir besoin de plusieurs types d'accessoires ?
Exposez List<Fruit>
pour ton A.P.I., et utilise List<Orange>
List<Banana>
, List<Strawberry>
en interne, où Orange
, Banana
y Strawberry
sont des descendants de Fruit
.
Votre utilisateur A.P.I. va-t-il avoir besoin d'une collection de type générique ?
Utilisez List
où tous les éléments sont object
(s).
A la vôtre.
4 votes
Duplicata : stackoverflow.com/questions/271710/
0 votes
Également : stackoverflow.com/questions/4455428/