Jest kilka tematów, które wynikają z tego pytania:
- interfejsy a klasy
- która konkretna klasa, z kilku podobnych klas, kolekcji, listy, tablicy?
- Typowe klasy a kolekcje podelementów („typy ogólne”)
Możesz chcieć podkreślić, że jest to API zorientowane obiektowo
interfejsy a klasy
Jeśli nie masz dużego doświadczenia z interfejsami, polecam pozostać przy zajęciach. Widzę wiele razy deweloperów skaczących do interfejsów, nawet jeśli nie jest to konieczne.
I koniec z kiepskim projektem interfejsu, zamiast dobrym projektem klasowym, który, nawiasem mówiąc, może ostatecznie zostać przeniesiony do dobrego projektu interfejsu ...
Zobaczysz wiele interfejsów w API, ale nie spiesz się, jeśli tego nie potrzebujesz.
W końcu nauczysz się, jak stosować interfejsy w swoim kodzie.
która konkretna klasa, z kilku podobnych klas, kolekcji, listy, tablicy?
Istnieje kilka klas w języku C # (dotnet), które można wymieniać. Jak już wspomniano, jeśli potrzebujesz czegoś z bardziej specyficznej klasy, takiej jak „CanBeSortedClass”, wyraź to w swoim API.
Czy twój użytkownik API naprawdę musi wiedzieć, że twoją klasę można posortować lub zastosować jakiś format do elementów? Następnie użyj „CanBeSortedClass” lub „ElementsCanBePaintedClass”, w przeciwnym razie użyj „GenericBrandClass”.
W przeciwnym razie użyj bardziej ogólnej klasy.
Typowe klasy kolekcji a kolekcje podelementów („ogólne”)
Przekonasz się, że istnieją klasy zawierające inne elementy i możesz określić, że wszystkie elementy powinny być określonego typu.
Kolekcje ogólne to te klasy, których można używać tej samej kolekcji dla kilku aplikacji kodujących, bez konieczności tworzenia nowej kolekcji, dla każdego nowego typu elementu podrzędnego, na przykład: Collection .
Czy Twój użytkownik API będzie potrzebował bardzo konkretnego typu, takiego samego dla wszystkich elementów?
Użyj czegoś takiego jak List<WashingtonApple>
.
Czy Twój użytkownik API będzie potrzebował kilku powiązanych typów?
Wystawiać List<Fruit>
do API i użyć List<Orange>
List<Banana>
, List<Strawberry>
wewnętrznie, gdzie Orange
, Banana
i Strawberry
są potomkami Fruit
.
Czy Twój użytkownik interfejsu API będzie potrzebował kolekcji typów ogólnych?
Użyj List
tam, gdzie znajdują się wszystkie elementy object
.
Twoje zdrowie.