Pytania otagowane jako liskov-substitution

W przypadku pytań o zasadę substytucji Liskova w projektowaniu obiektowym.

10
Czy jest to naruszenie zasady substytucji Liskowa?
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 …

8
LSP vs OCP / Liskov Substitution VS Open Close
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ć …

3
Jaka jest różnica między podklasą a podtypem?
Najwyżej oceniana odpowiedź na to pytanie dotyczące zasady substytucji Liskowa stara się rozróżnić pojęcia podtyp i podklasa . Wskazuje również, że niektóre języki łączą oba języki, podczas gdy inne nie. W przypadku języków obiektowych, które znam najbardziej (Python, C ++), „typ” i „klasa” są pojęciami synonimicznymi. Jeśli chodzi o C …

14
Czy istnieje język lub wzorzec projektowy, który umożliwia * usunięcie * zachowania lub właściwości obiektu w hierarchii klas?
Dobrze znaną wadą tradycyjnych hierarchii klas jest to, że są one złe, jeśli chodzi o modelowanie świata rzeczywistego. Na przykład próba przedstawienia gatunku zwierząt za pomocą klas. W rzeczywistości robi to kilka problemów, ale jednym z nich, którego nigdy nie widziałem, jest rozwiązanie, gdy podklasa „traci” zachowanie lub właściwość zdefiniowaną …


5
Czy przypadki szczególne z awariami naruszają zasadę substytucji Liskowa?
Załóżmy, że mam interfejs FooInterfacez następującą sygnaturą: interface FooInterface { public function doSomething(SomethingInterface something); } I konkretna klasa, ConcreteFooktóra implementuje ten interfejs: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Chciałbym ConcreteFoo::doSomething()zrobić coś wyjątkowego, jeśli przejdzie on przez specjalny typ SomethingInterfaceobiektu (powiedzmy, że się nazywa SpecialSomething). …

3
W jaki sposób wzmocnienie warunków wstępnych i osłabienie warunków wtórnych narusza zasadę substytucji Liskowa?
Czytam, że zasada substytucji Liskowa jest naruszona, jeśli: Warunki wstępne są wzmocnione, lub Warunki dodatkowe są osłabione Ale jeszcze nie rozumiem, w jaki sposób te dwa punkty naruszałyby zasadę substytucji Liskowa. Czy ktoś może wyjaśnić przykład. W szczególności, w jaki sposób którykolwiek z powyższych warunków spowodowałby sytuację, w której obiekt …



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 …

2
Real World - Liskov Substitution Principle
Tło: opracowuję strukturę przesyłania wiadomości. Ramy te umożliwią: wysyłanie wiadomości za pośrednictwem magistrali usług subskrybowanie kolejek na szynie komunikatów subskrybowanie tematów na szynie wiadomości Obecnie używamy RabbitMQ, ale wiem, że w najbliższej przyszłości przejdziemy do Microsoft Service Bus (w lokalu). Planuję utworzyć zestaw interfejsów i implementacji, aby po przejściu na …


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, …



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.