Short Hint for Coding : Best-Practice : ISTEIN Prinzipien für OOP Vererbungshierachien

in #deutsch5 years ago

UPDATE:




DQmPiKcYtB7kqiL7JBjL6JuybPbUPxNvxTAkFarMCAP5xZK_1680x8400.jpeg


#ISTEIN Prinzipien für OOP Vererbungshierachien

Das folgende Beispiel zeigt eine einfache und effiziente Möglichkeit Vererbungsregeln korrekt anzuwenden.

Vererbung ist eines der Prinzipen der objektorientierten Programmierung.

Aber Vorsicht!

Setze Vererbung nur ein, wenn diese Sinn ergeben, denn Vererbung bindet die Klassen am stärksten an andere Klassen und diese Verbindungen lassen sich später nur sehr schwer auflösen, wenn Änderungen implementiert werden müssen.

Daher gibt es grundlegende Regeln, die dabei helfen, richtige Entscheidungen bei der objektorientierten Programmierung zu treffen.

Eine Regeln der Regeln, lässt sich mit einer wortkombination prüfen

"ist ein" bzw auch "ist eine"

Hier ein Beispiel

Richtig : Wenn ich sagen kann "Ein Kunde ist eine Person", dann ist die Vererbungshierachie klar und korrekt.

Die Klasse Kunde erbt in dem Fall von der Klasse Person.

Falsch : Wenn ich sagen würde "Ein Kunde ist eine Datenbank" dann ist die Vererbungshierachie auf logischer Ebene verletzt. Selbst wenn ein Kunde real in der Anwendung Daten aus einer DB bezieht, darf dies nie über Vererbung erfolgen.

Die Lösung wäre im gezeigten Beispiel ein DB-Objekt an den Kunden zu übergeben. Dies kann mit einer Injection durchgeführt werden. Dabei wird entweder das Datenobjet im Konstruktor übergeben oder mit einer Methode der nuzenden Klasse.

Sollte sich im Laufe der Entwicklung herrausstellen, dass die DB gewechselt wird, reicht es, eine andere Objektinstanz der DB dem Kunden mitzuliefern.

Welche Dinge sind typisch für das Anwenden von Vererbungshierachien und welche sind es nicht?

Beispiel für Vererbung

Feste Hierachien wie das HTML-Datenmodell, festgelegte XML-Formate/Modelle, die sich fast nie ändern und alles was sonst in die Ewigkeit gesossen werden soll, kann in Vererbungshieracheien abgebildet werden.

###Beispiel gegen Vererbung

Logischer Weise sind dann fast alle Konstrukte, welche sich häufig ändern oder bei denen Änderungen schon abzusehen sind, eher nicht in Vererbungshieracheien zu organisieren. Hier bieten sich DI-Patterns ( Dependency Injection ) oder auch Traits an.

Wer mehr zum Thema wissen möchte, dem kann ich empfehlen Clean Code von Robert C. Martin empfehlen. Dabei handelt es sich um Empfehlungen für eine verbesserte Programmarchitektur.

Wer Zusammenfassung liebt, den hab ich hier was aus der Suchmaschine vermerkt:

Der Wikipediaartikel über Prinzipien zum objektorientierten Design verschafft auch nochmal einen Überblick zur bessseren Programmierung von Anwendungen.





#webdevelopment #code #coding #dev #development #programming #codedesign #codereview #steemit #utopian-io #technology #science #deutsch #deutschland #german #germany #orginal #diy #oop #ood #solid #cleancode #robertcmartin #cleanarchitecture


rect4138.png

Sort:  

Steem on und weiter viel Erfolg...

Du hast ein kleines Upvote vom German-Steem-Bootcamp erhalten.

Du findest uns im Discord unter https://discord.gg/HVh2X9B

Aktueller Kurator ist @don-thomas

DONNERSTAGS findet bei uns ab 19 Uhr die Quasselstunde(n) statt wo du nicht nur mit uns reden kannst - es werden auch tolle Preise verlost
Du möchtest keine Upvotes (mehr) von uns erhalten? Eine kurze Mittelung unter diesen Kommentar reicht.
Dem Upvote von uns folgt ein Trail der weitere Upvotes von unseren Unterstützern beinhaltet. Hier kannst du sehen wer diese sind und auch erfahren wie auch du uns und somit die deutschsprachige Community unterstützen kannst.

Vielen Dank. Das klingt ja echt super!
Da werd ich mal reinschauen. Bis bald!

According to the Bible, Can the word "god" be applied to other entities?

(Sorry for sending this comment. We are not looking for our self profit, our intentions is to preach the words of God in any means possible.)


Comment what you understand of our Youtube Video to receive our full votes. We have 30,000 #SteemPower. It's our little way to Thank you, our beloved friend.
Check our Discord Chat
Join our Official Community: https://beta.steemit.com/trending/hive-182074