Hallo, ich heiße Dmitry Karlovsky. Und Sie befinden sich auf Core Dump , wo wir verschiedene Themen aus der Informatik übernehmen und Stück für Stück dekonstruieren. Dieses Mal werden wir mit der Dekonstruktion der SOLID-Prinzipien beginnen, beginnend mit den konkretesten.
Bereits 1987 formulierte Barbara Liskov das Prinzip, sich einen Namen zu machen.
Liskov-Substitutionsprinzip
Sie können verstehen, ob Sie polymorphen Code richtig geschrieben haben oder nicht. Bevor wir es jedoch formulieren, müssen wir einige der Konzepte verstehen, die in der Definition enthalten sind.
Videoaufzeichnung dieser Analyse .
Supertyp-Subtyp-Beziehung
Alle Daten in unserem Programm gehören zu dem einen oder anderen Typ. Der Typ definiert die Menge der möglichen Werte und ihre Semantik. Ein Typ kann einen anderen vollständig einschließen. In einem solchen Fall ist der zweite Typ ein Untertyp des ersten. Somit können Typen eine Hierarchie bilden. Schauen wir uns ein Beispiel mit Zahlen an.

Sowohl die Art der ganzen Zahlen als auch die Art der positiven Zahlen sind getrennt Sonderfälle der Art der reellen Zahlen und daher ihre Untertypen. Gleichzeitig umfassen die Ganzen nicht alle positiven. Und die positiven schließen nicht alle Ganzen ein. Daher gehören diese Typen in einer Supertyp-Subtyp-Beziehung nicht zueinander. Aber natürliche Zahlen sind sowohl ganze Zahlen als auch positiv, so dass der Typ der natürlichen Zahlen ein Subtyp dieser beiden Typen ist.
"-" , , — , .
. , . . , , — , .

, , .
— .

, draw . — .
LSP —
, : " , , , ".

, , , , , . , LSP : , .
, ...
LSP
, -, , .

, , "", . . , , . LSP. , . "".
, , , . ..
- — ( )
- — ( )
- :
- ( )
- ( )
, , LSP .
LSP
- . , , , , LSP . — .
, , , .
LSP
, LSP , ...
" , , , ".
, , — . , , .
LSP?
, , LSP. , , , . , - , . , .
LSP, , — , . . , .
- LSP :-(
- :-)
?
. , , .
:
, . - . - . - . , , , .
..
-
Wenn Ihnen diese Analyse nützlich erschien, lassen Sie es mich durch Ähnliches wissen. Und teilen Sie Ihren Kollegen auch einen Link dazu mit.
Wenn Sie mit einem Gedanken nicht einverstanden sind oder umgekehrt eine Art Untertreibung verspüren und Ihre Ideen hinzufügen möchten, freue ich mich auf Ihre Kommentare.
Wenn Sie keine Angst haben, mit mir in der Luft zu diskutieren, oder sogar bereit sind, Mitautor zukünftiger Analysen zu werden, schreiben Sie Telegramme .
Abonnieren Sie zum Schluss den Kanal, damit Sie keine weiteren Einblicke verpassen. Wir haben noch viel mit Ihnen zu besprechen.
Das ist alles für jetzt. Mit Ihnen war ein kleiner Programmierer Dmitry Karlovsky.