SOLID

5. Zasada odwrócenia zależności

5. Zasada odwrócenia zależności W powyższym przykładzie Switch jest bezpośrednio zależny od konkretnej implementacji LightBulb. To narusza zasadę odwrócenia zależności. Aby poprawić to naruszenie zasady DIP, możemy użyć interfejsu, aby stworzyć abstrakcję dla urządzeń, a następnie uzależnić Switch od tej abstrakcji: W tym poprawionym przykładzie Switch korzysta teraz z interfejsu Switchable zamiast bezpośrednio zależnie od […]

4. Zasada segregacji interfejsów

4. Zasada segregacji interfejsów W powyższym przykładzie obie klasy, OfficeWorker i FactoryWorker, muszą implementować obie metody interfejsu Worker, chociaż każda z nich używa tylko jednej z tych metod. To łamie zasadę segregacji interfejsów. Aby naprawić naruszenie zasady ISP, możemy stworzyć osobne interfejsy dla pracowników biurowych i pracowników na produkcji: W tym przypadku mamy osobne interfejsy

3. Zasada podstawienia Liskov

3. Zasada podstawienia Liskov W powyższym przykładzie klasa Square dziedziczy po klasie Rectangle, ale narusza zasadę LSP poprzez nadpisywanie metod setWidth i setHeight. W efekcie obiekt typu Square, gdy jest używany zamiast obiektu typu Rectangle, prowadzi do nieprawidłowych wyników. Aby naprawić to naruszenie, możemy ponownie zaprojektować hierarchię klas lub dostosować metody w sposób, który nie

2. Otwarte – Zamknięte

2. Otwarte – Zamknięte W powyższym przykładzie klasa Shape łamie zasadę OCP, ponieważ każda nowa forma wymaga modyfikacji istniejącej klasy. Aby poprawić to naruszenie, możemy użyć dziedziczenia i polimorfizmu, aby umożliwić łatwe rozszerzanie funkcjonalności dla nowych kształtów, bez modyfikacji istniejącego kodu. W poprawionym przykładzie mamy abstrakcyjną klasę Shape, a każdy nowy kształt dziedziczy po niej.

1. Zasada Pojedynczej Odpowiedzialności

1. Zasada Pojedynczej Odpowiedzialności SOLID to zestaw zasad projektowania oprogramowania, które pomagają tworzyć bardziej elastyczne, skalowalne i zrozumiałe systemy. Aby naprawić to naruszenie SRP, możemy rozdzielić te dwie odpowiedzialności do dwóch oddzielnych klas: Teraz mamy dwie osobne klasy, z których każda ma jedną odpowiedzialność: DataSaver do zapisu danych do pliku i DataDisplayer do wyświetlania danych.

Scroll to Top