Die vier Säulen der objektorientierten Programmierung
On September 27, 2021 by adminIn diesem Blog werde ich die vier Säulen der OOP erklären und kleine Beispiele geben. Beispiele, die klein genug sind, dass Sie und ich sie leicht verstehen können.
Abstraktion ist im Wesentlichen „need to know“. Wir verstecken die wichtigen Implementierungsdetails, während wir die offensichtliche Verwendung in den Vordergrund stellen. Denken Sie also daran: „Verstecke die Details, zeige die Relevanz“.
Abstraktionsbeispiel…
Dies ist ein Anmeldeformular einer App, an der ich arbeite (die Relevanz).
Das ist die Implementierungslogik des Formulars. (
Polymorphismus
Polymorphismus bedeutet, dass man einen Codeblock verwendet, aber die Version des Codes, die verwendet wird, je nach den Eingaben, die er erhält, ändert. Um es also etwas klarer zu machen, können verschiedene Klassen mit der gleichen Schnittstelle verwendet werden, aber ihre eigene Implementierung dieser Schnittstelle bereitstellen.
Polymorphismus-Beispiel…
class Animal { speak = () => console.log('makes sound')}class Dog extends Animal { speak = () => console.log('woof')}class Cat extends Animal { speak = () => console.log('meowww')}class Cow extends Animal { speak = () => console.log('moooooo')}let dog1 = new Dog()let cat1 = new Cat()let cow1 = new Cow()dog1.speak() // => woofcat1.speak() // => meowwwcow1.speak() // => moooooo
Die Klassen Katze, Hund und Kuh erben von der Klasse Tier. Dadurch können die Klassen Katze, Hund und Kuh die Schnittstelle der Klasse Animal verwenden. Sie haben jedoch nur die Methode speak zur Verfügung. Wenn wir die speak-Methode aus der Klasse Cat, Dog und Cow weglassen und dann Instanzen der Klassen Cat, Dog und Cow erstellen, können wir die speak-Methode für diese Instanzen trotzdem aufrufen. Das einzige Problem ist, dass die Methode „Animals makes sound“ anstelle der entsprechenden Geräusche ausgeben würde, die eine Katze, ein Hund oder eine Kuh macht („miau“, „wuff“, „muh“).
Hier kommt das Überschreiben von Methoden ins Spiel. Wenn wir die speak-Methode in den Klassen Cat, Dog und Cow umdefinieren, können wir sie so anpassen, dass sie die Geräusche ausgibt, die Katzen und Hunde machen.
Verkapselung
Die Verkapselung bindet die Daten und die Funktionen, die die Daten bearbeiten, aneinander, und das schützt beide vor äußeren Einflüssen und Missbrauch. Ein gutes Beispiel für eine Verkapselung ist eine Klasse. Wir können auf das obige Beispiel zurückgreifen, in dem wir über Hunde, Katzen und Kühe sprechen, allerdings mit einigen leichten Änderungen.
class Dog { constructor(name) { this.name = name } printName = () => console.log(this.name)}class Cat { constructor(name) { this.name = name } printName = () => console.log(this.name)}class Cow { constructor(name) { this.name = name } printName = () => console.log(this.name)}let dog1 = new Dog()dog1.name = "Max"dog1.printName() // => Maxlet cat1 = new Cat()cat1.name = "Mark"cat1.printName() // => Marklet cow1 = new Cow()cow1.name = "Tom"cow1.printName() // => Tom
Beachten Sie, dass wir beim Erstellen von Instanzen für jedes Tier auch jedem einen Namen zuweisen. Der Clou dabei ist, dass die ‚.name‘ nach jeder erstellten Instanz (z.B. dog1.name) alle unterschiedlich sind. Diese ‚.name‘ sind in ihren jeweiligen Klassen gekapselt. Die Zuweisung eines Namens an eine Instanz ändert nicht den Namenswert einer anderen Instanz.
Vererbung
Vererbung ist wahrscheinlich am einfachsten zu verstehen. Vererbung ist das Konzept einer Klasse, die die Schnittstelle einer anderen Klasse benutzt (erbt). Sie wird dann zu einem Kind oder einer Unterklasse, während die Klasse, von der sie erbt, die Eltern- oder Oberklasse ist. In unserem zweiten Beispiel oben haben wir tatsächlich etwas geerbt. Die Klassen Katze, Hund und Kuh erben von der Klasse Animal, um Zugriff auf die Methode speak zu haben. Stellen Sie einfach sicher, dass Sie das extends-Schlüsselwort hinzufügen.
Schreibe einen Kommentar