Kiedy używać interface'ów?

0

Kiedy należy używać interfejsów? Załóżmy ze mamy aplikację MVC. Skąd mam wiedzieć kiedy dać interfejs i poźniej klasę go implementująca a kiedy wystarczy tylko normalna klasa bez żadnego interfejsu?

0

stosowanie interfejsów daje bardziej elastyczny kod ponieważ wyższe warstwy aplikacji stają się mniej zależne od konkretnej implementacji (typów, klas) niższy warstw
jeśli tylko możesz to stosuj interfejsy

2

Dobrym przykładem interfejsu jest lista. Może mieć implementację (nie widoczną dla użytkownika, nie interesuje go to) jako Linked List, dynamiczna tablica (Array List), może ograniczona, stała tablica, Skip List, jakieś drzewo. Tworzysz wtedy API, z metodami add, last, push, i tak dalej, takimi samymi dla każdej implementacji i klienta nie obchodzi co jest w "bebechach", wszystko wygląda tak samo, sa tylko inne konstruktory i inne złożoności metod, np., dodanie na początku do Array List jest O(n), a do Linked List jest O(1), o tym sobie może poczytać w dokumentacji. W takim przypadku interfejs się narzuca, robić to tworząc oddzielne klasy to nie jest dobry design. Mamy wszystko tak jak lubimy, złożoność jest schowana w metodach, za interfejsem i oddzielona skutecznie od API.

1 użytkowników online, w tym zalogowanych: 0, gości: 1