Interface segregation principle — Zasada segregacji interfejsów
Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.
Celem zasady segregacji interfejsów jest wyzbycie się z oprogramowania interfejsów, które odpowiadają za robienie wielu rzeczy. Źle zaprojektowane interfejsy mają tendencje do rozrastania się do zbyt wielkich rozmiarów, stają się one przez to niespójne. Klasy, które je implementują, muszą implementować metody, których nie powinny. Zależne są one od metod, których nie używają.
Regułę tę można stosować do metod, funkcji, klas, modułów oraz pakietów.
Zalety
- Łatwiejsze zapewnienie Zasady podstawienia Liskov oraz Zasady pojedynczej odpowiedzialności.
- Łatwiejsze utrzymanie kodu.
- Większa czytelność kodu.
- Łatwiejsze zmienianie kodu.
- Brak konieczności implementacji niepotrzebnych metod w klasach, które nie powinny ich mieć.
- Brak interfejsów-bogów.
- Mniejsza zależność kodu od innego kodu.
Wady
- Duża liczba interfejsów.
- Większa pracochłonność podczas tworzenia oprogramowania.
Przykład
- Interfejs Zwierzę ma metodę Biegnij. Ten interfejs implementuje klasa Pies i Ryba. W klasie Ryba metoda Biegnij jest zbędna.
- Interfejs File ma dwie metody: Zapisz i Czytaj. Klasa PlikTylkoDoOdczytu implementuje ten interfejs i w metodzie Zapisz nie zapisuje nic do pliku, ponieważ nie może — jest to przecież plik tylko do odczytu.
Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:
- Początek mini projektu: Poznaj zasady SOLID i OOP
- SOLID
- S jak Single responsibility principle, czyli zasada jednej odpowiedzialności
- O jak Open-closed principle, czyli zasada otwarte/zamknięte
- L jak Liskov Substitution Principle, czyli zasada podstawień Barbary Liskov
- I jak Interface segregation principle, czyli Zasada segregacji interfejsów
- D jak Dependency Inversion Principle, czyli Zasada odwrócenia zależności
- CS jak Ćwiczenia Single responsibility principle, czyli zasada jednej odpowiedzialności
- CO jak Ćwiczenia Open/closed principle, czyli Zasada otwarte-zamknięte
- CL jak Ćwiczenia Liskov Substitution Principle, czyli zasada podstawień Barbary Liskov
- CI jak Ćwiczenia Interface segregation principle, czyli Zasady segregacji interfejsów
- CI jak Ćwiczenia Dependency Inversion Principle, czyli Zasada odwrócenia zależności
- Ćwiczenia z SOLID
- Podsumowanie połowy projektu: Poznaj zasady SOLID i OOP
- Ćwiczenia z SOLID — Kata
- OOP — Object Oriented Programming, czyli programowanie obiektowe
- OOP — Myślenie obiektowe
- OOP — Object Oriented Programming, czyli programowanie obiektowe — Modelowanie dziedziny
- KISS — Keep it simple, stupid, czyli Bez udziwnień zapisu, idioto (BUZI)
- Lod — Law of Demeter, czyli Prawo Demeter
- DRY — Don’t repeat yourself, czyli Nie powtarzaj się
- SLAP — Single Level of Abstraction Principle, czyli Pojedynczy poziom abstrakcji
- Composition Over Inheritance, czyli Kompozycja ponad dziedziczeniem
- Encapsulate what changes, czyli Ukrywaj zmieniające się rzeczy
- Podsumowanie projektu: Poznaj zasady SOLID i OOP
- Podsumowanie zasad SOLID i OOP
- Mini kurs: Poznaj zasady SOLID i OOP – Zapisz się!
- Praca cząstkowa w Metodzie Kanban
Źródła
Obraz główny
Materiały
- Czysta architektura — Robert C. Martin
- https://sii.pl/blog/solid-dobre-praktyki-programowania/
- https://javadeveloper.pl/solid/
- https://www.p-programowanie.pl/paradygmaty-programowania/zasady-solid/
- https://www.samouczekprogramisty.pl/solid-czyli-dobre-praktyki-w-programowaniu-obiektowym/
- https://pl.wikipedia.org/wiki/SOLID_(programowanie_obiektowe)
- https://en.wikipedia.org/wiki/SOLID
- https://en.wikipedia.org/wiki/Interface_segregation_principle
- http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod
- The Interface Segregation Principle – Robert C. Martin – https://drive.google.com/file/d/0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi/view
1
/
42
Tomasz Kolinko – Bulwar złamanych marzeń – Notatka z nauki
BIG DATA Piotr Waglowski (VaGla.pl) – Notatka z nauki
Filtr w Reużywalnym Elemencie - Filters Dropdown| Bubble.io TUTORIAL
Zakładki Sterowane URLem - Tabbing System using Url Parameters)| Bubble.io TUTORIAL
Wybieranie Elementów W Grupie Powtarzającej - Select Items in a Repeating Group| Bubble.io TUTORIAL
KB_ZW_0181 - Refleksje Na Temat Zarządzania Wiedzą: Radość
Jeden Popup Do Tworzenia i Edycji - Same Popup for Creating and Editing| Bubble.io TUTORIAL
Adam Haertle – [PL] Katalog złych praktyk – Notatka z nauki
Inwestowanie w Startupy – Bartłomiej Gola (SpeedUP Group) – Notatka z nauki
Oceń Gwiazdkami - Star Rating Input| Bubble.io TUTORIAL
Wyślij Dane i Pokaż w Popupie przez URL - Send Data and Show Popups via Url| Bubble.io TUTORIAL
Uber i “Dolina Krzemowa” – Kacper Winiarczyk (Uber) – Notatka z nauki
Helen Pryłowska “O tym czego nie widać” – Notatka z nauki
Funkcjonalność: Polubienia - Like Functionality| Bubble.io TUTORIAL
Unscripted Życie wolność przedsiębiorczość — MJ DeMarco – Notatka z nauki
Głaskologia — Miłosz Brzeziński – Notatka z nauki
Lista Rozwijana Do Sortowania Listy - Dropdown to Sort a Repeating Group| Bubble.io TUTORIAL
Start-up po polsku Jak założyć i rozwinąć dochodowy e-biznes
Czy Blockchain zdecentralizuje wszystko – Notatka z nauki
Wyświetlanie Wybranego Elementu Na Stronie - Display the Selected Thing on Page | Bubble.io TUTORIAL
Pasek Postępu - Create a Progress Bar| Bubble.io TUTORIAL
KB_ZW_0180 - Refleksje Na Temat Zarządzania Wiedzą: Szczegóły
Dalszy Rozwój Aplikacji - Next Steps| Bubble.io TUTORIAL
Ewolucja z monolitu do architektury opartej na zdarzeniach – Notatka z nauki
Lead generation i automatyzacja, czyli jak sprzedawać leżąc na plaży – Notatka z nauki
Reguły Prywatności - Privacy Rules| Bubble.io TUTORIAL
Nawigacja Aplikacji - Navigation Logic| Bubble.io TUTORIAL
9 rzeczy których nauczyłem się robiąc startupy – Notatka z nauki
5 Najczęstszych błędów w Entity Framework Core – Notatka z nauki
Użytkownicy - Users| Bubble.io TUTORIAL
1
/
42