Pytania otagowane jako design-principles

2
Czy są jakieś zasady OO, które są praktycznie stosowane dla Javascript?
Javascript jest językiem obiektowym opartym na prototypach, ale może zostać oparty na klasach na różne sposoby, poprzez: Samodzielne pisanie funkcji, które mają być używane jako klasy Użyj fajnego systemu klas w ramach (takich jak mootools Class.Class ) Wygeneruj go z Coffeescript Na początku pisałem kod oparty na klasach w JavaScript …


1
Czy zasada podstawienia Liskowa dotyczy również klas implementujących interfejs?
LSP stwierdza, że ​​klasy powinny być substytucyjne dla ich klas podstawowych, co oznacza, że ​​klasy pochodne i podstawowe powinny być semantycznie równoważne. Ale czy LSP ma również zastosowanie do klas implementujących interfejs? Innymi słowy, jeśli metoda interfejsu zaimplementowana przez klasę różni się semantycznie od tego, czego spodziewa się użytkownik, czy …


4
W jaki sposób prawo Demeter stosuje się do systemów obiektowych w odniesieniu do sprzęgania i kohezji? [Zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 6 lat temu . Jak stosuje się Prawo Demetera do systemów obiektowych ze sprzężeniem i kohezją? Czytałem książkę „Rozwój …


1
Jak zweryfikować zasadę podstawienia Liskowa w hierarchii dziedziczenia?
Zainspirowany tą odpowiedzią: Wymaga tego zasada substytucji Liskowa W podtypie nie można wzmocnić warunków wstępnych. Warunki podrzędne nie mogą zostać osłabione w podtypie. Niezmienniki nadtypu muszą być zachowane w podtypie. Ograniczenie historii („reguła historii”). Obiekty są uważane za modyfikowalne tylko za pomocą ich metod (enkapsulacji). Ponieważ podtypy mogą wprowadzać metody, …

5
Czy są jakieś istotne wady uzależnienia od abstrakcji?
Czytałem tę wiki na temat Stable Abstractions Principle (SAP) . SAP stwierdza, że ​​im bardziej stabilny pakiet, tym bardziej powinien on być abstrakcyjny. Oznacza to, że jeśli pakiet jest mniej stabilny (bardziej prawdopodobne, że się zmieni), powinien być bardziej konkretny. Nie do końca rozumiem, dlaczego tak powinno być. Z pewnością …

5
Kiedy przestać dziedziczyć?
Pewnego razu zadałem pytanie na temat przepełnienia stosu dotyczące dziedziczenia. Powiedziałem, że projektuję silnik szachowy w stylu OOP. Więc odziedziczyłem wszystkie moje dzieła z klasy Abstract, ale dziedziczenie wciąż trwa. Pokaż mi kod public abstract class Piece { public void MakeMove(); public void TakeBackMove(); } public abstract class Pawn: Piece …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.