Mnemoniki dla zestawu zasad projektowania: pojedyncza odpowiedzialność, otwarte-zamknięte, podstawienie Liskowa, segregacja interfejsu, inwersja zależności
Wydaje się całkiem jasne, że „zasada pojedynczej odpowiedzialności” nie oznacza „tylko jednej rzeczy”. Po to są metody. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin mówi, że „klasy powinny mieć tylko jeden powód do zmiany”. …
Podczas ostatniej rozmowy o pracę nie mogłem odpowiedzieć na pytanie o SOLID - poza podaniem podstawowego znaczenia różnych zasad. Naprawdę mnie to wkurza. Zrobiłem kilka dni, żeby się rozejrzeć i jeszcze nie opracowałem satysfakcjonującego podsumowania. Pytanie do wywiadu brzmiało: Jeśli spojrzałbyś na projekt .Net, o którym mówiłem, że ściśle przestrzegasz …
Powiedzmy, że mamy listę encji Zadania i ProjectTaskpodtyp. Zadania można zamknąć w dowolnym momencie, z wyjątkiem tych, ProjectTasksktórych nie można zamknąć, gdy mają status Uruchomione. Interfejs użytkownika powinien upewnić się, że opcja zamknięcia uruchomionego ProjectTasknigdy nie jest dostępna, ale w domenie istnieją pewne zabezpieczenia: public class Task { public Status …
Jeśli kwadrat jest rodzajem prostokąta, to dlaczego kwadrat nie może odziedziczyć po prostokącie? Lub dlaczego jest to zły projekt? Słyszałem, jak ludzie mówią: Jeśli sprawiłeś, że Kwadrat pochodzi z prostokąta, kwadrat powinien być użyteczny wszędzie tam, gdzie oczekujesz prostokąta Jaki jest tutaj problem? I dlaczego Square miałby być użyteczny wszędzie …
Lubię SOLID i staram się go używać i stosować podczas programowania. Ale nie mogę się oprzeć wrażeniu, że podejście SOLID zmienia kod w kod „framework” - tj. Kod, który zaprojektowałbyś, gdybyś tworzył strukturę lub bibliotekę dla innych programistów. Zazwyczaj ćwiczyłem 2 tryby programowania - tworzenie mniej więcej dokładnie tego, o …
Zasada pojedynczej odpowiedzialności jest zdefiniowana w Wikipedii jako Zasada pojedynczej odpowiedzialności jest zasadą programowania komputerowego, która stwierdza, że każdy moduł, klasa lub funkcja powinna ponosić odpowiedzialność za jedną część funkcjonalności zapewnianej przez oprogramowanie, a odpowiedzialność powinna być całkowicie zamknięta w klasie Jeśli klasa powinna ponosić tylko jedną odpowiedzialność, jak może …
Wygląda na to, że Java ma moc deklarowania klas niepochodzących od wieków, a teraz C ++ też to ma. Jednak w świetle zasady Open / Close w SOLID, dlaczego miałoby to być przydatne? Dla mnie finalsłowo kluczowe brzmi jak friend- jest legalne, ale jeśli go używasz, najprawdopodobniej projekt jest nieprawidłowy. …
Większość projektów, nad którymi pracuję, rozważa rozwój i testy jednostkowe w oderwaniu, co sprawia, że pisanie testów jednostkowych w późniejszym przypadku jest koszmarem. Moim celem jest pamiętanie o testach podczas samych faz projektowania wysokiego i niskiego poziomu. Chcę wiedzieć, czy istnieją dobrze zdefiniowane zasady projektowania, które promują testowalny kod. Jedną …
Jaki jest cel kontenerów MKOl? Połączone powody można uprościć w następujący sposób: Podczas korzystania z zasad programistycznych OOP / SOLID, wstrzykiwanie zależności jest nieporządne. Albo masz punkty wejścia najwyższego poziomu, które zarządzają zależnościami dla wielu poziomów poniżej siebie i przekazują zależności rekurencyjnie przez konstrukcję, albo masz nieco zduplikowany kod we …
W ciągu ostatnich kilku lat powoli przechodziliśmy na stopniowo coraz lepszy kod, kilka kroków naraz. W końcu zaczynamy przestawiać się na coś, co przynajmniej przypomina SOLID, ale jeszcze tam nie jesteśmy. Od czasu dokonania zmiany, jednym z największych zarzutów ze strony programistów jest to, że nie mogą znieść recenzowania i …
Próbuję zrozumieć SOLIDNE zasady OOP i doszedłem do wniosku, że LSP i OCP mają pewne podobieństwa (jeśli nie powiedzieć więcej). zasada otwarta / zamknięta stwierdza: „jednostki oprogramowania (klasy, moduły, funkcje itp.) powinny być otwarte na rozszerzenie, ale zamknięte na modyfikację”. LSP w prostych słowach stwierdza, że dowolną instancję Foomożna zastąpić …
Moi koledzy lubią mówić „logowanie / buforowanie / itd. To problem przekrojowy”, a następnie wszędzie używają odpowiedniego singletonu. A jednak uwielbiają IoC i DI. Czy to naprawdę słuszna wymówka, by złamać zasadę SOLI D.
Obecnie próbuję znaleźć SOLID. Zatem zasada inwersji zależności oznacza, że dowolne dwie klasy powinny komunikować się za pośrednictwem interfejsów, a nie bezpośrednio. Przykład: Jeśli class Ama metodę, która oczekuje wskaźnika do obiektu typu class B, wówczas metoda ta powinna faktycznie oczekiwać obiektu typu abstract base class of B. Pomaga to …
Kiedy zasady SOLID stają się YAGNI? Jako programiści dokonujemy kompromisów przez cały czas, między złożonością, łatwością utrzymania, czasem budowy i tak dalej. Między innymi dwie najmądrzejsze wytyczne dotyczące dokonywania wyborów to moim zdaniem zasady SOLID i YAGNI. Jeśli nie potrzebujesz tego; nie buduj go i utrzymuj w czystości. Teraz, na …
Z czasem mogłem zrozumieć dwie części SOLID - „S” i „O”. „O” - nauczyłem się otwartej zasady zamkniętej za pomocą wzoru dziedziczenia i strategii. „S” - nauczyłem się zasady pojedynczej odpowiedzialności podczas uczenia się ORM (logika trwałości jest odbierana obiektom domeny). W podobny sposób, jakie są najlepsze regiony / zadania …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.