✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Die ersten beiden Säulen von OOP

40

Wenn es um objektorientierte Programmierung (oder OOP) geht, werden Sie wahrscheinlich von den drei Säulen der objektorientierten Programmierung oder den vier Säulen der objektorientierten Programmierung hören.

Abhängig von Ihrem Hintergrund haben Sie vielleicht schon von ihnen gehört, wissen, was sie sind, und müssen sich nicht allzu sehr damit befassen. Aber wenn Sie es nicht getan haben, glaube ich, dass es grundlegend für die objektorientierte Programmierung ist, sie zu verstehen.

Wir haben die gesamte Analysephase der objektorientierten Programmierung abgedeckt:

  1. Analyse, Teil 1
  2. Analyse, Teil 2
  3. Kundenerwartungen verstehen
  4. Lastenheft
  5. Geschäftsbedingungen

Nachdem dies gesagt ist, lassen Sie uns in die Design- und Implementierungsdiskussionen einsteigen. Schließlich wollen viele Leute sowieso dorthin springen, oder?

Die ersten beiden Säulen von OOP

Bevor ich irgendeinen Code schreibe, möchte ich zwei Posts über die vier Punkte der objektorientierten Programmierung schreiben (weil ich einer von denen bin, die sich der Idee anschließen, dass es vier gibt).

Zwei Säulen von OOP

Auch diese zu verstehen ist der Schlüssel zum Verständnis der Grundlagen der objektorientierten Programmierung. Ohne sie wird es schwierig, den Rest dessen, was in zukünftigen Beiträgen besprochen wird, zu navigieren.

Lassen Sie uns damit über jeden von ihnen sprechen. Wir behandeln die ersten beiden in diesem Beitrag und die letzten beiden im nächsten Beitrag.

1 Abstraktion

Im Allgemeinen ist dies der Schlüssel zum Schreiben von objektorientiertem Code. Damit meine ich alles, was in einer Klasse enthalten ist. Wir abstrahieren die Idee von etwas in eine Klasse. In vielen Büchern werden Dinge wie Tiere oder Autos als Klassen dargestellt.

Theoretisch funktioniert das, aber in der Praxis programmieren wir weder Tiere noch Autos (obwohl man zu diesem Zeitpunkt in der Geschichte wohl argumentieren könnte, aber ich schweife ab, weil Sie wissen, was ich meine).

Stattdessen werden wir Ideen in ihre Klassen abstrahieren. Und hier gibt es eine Schlüsselidee:

Eine Klasse sollte ein Substantiv darstellen.

Das heißt, Sie sollten keine Klasse haben, die so etwas wie „Laufen“ repräsentiert. Stattdessen haben Sie möglicherweise etwas, das ausgeführt wird, und daher wäre ausgeführt eine Methode. Und das ist die allgemeine Aufschlüsselung, wie Abstraktion funktioniert:

  1. Das, was repräsentiert werden soll, ist die Klasse,
  2. Das Zeug, das das Ding tut, sind seine Methoden,
  3. Und die Art und Weise, wie Sie das Ding beschreiben, kann normalerweise über seine Attribute oder Eigenschaften erfolgen.

Das bedeutet nicht, dass wir keine Funktionen oder Methoden haben, die seine Eigenschaften ändern, aber die drei obigen Punkte sind gute Faustregeln. Wenn Sie also eine Klasse entwerfen, können Sie Dinge fragen wie:

  • Schreibe ich etwas?
  • Schreibe ich etwas zu tun?
  • Oder schreibe ich etwas, das etwas beschreibt?

Denn wenn Sie eine Aktion schreiben, wird sie wahrscheinlich von etwas ausgeführt (denn Dinge handeln – sie tun Dinge). Und wenn Sie etwas beschreiben, dann bezieht es sich wahrscheinlich auf etwas (wann haben Sie das letzte Mal nichts beschrieben?)

Sinn ergeben?

2 Kapselung

Wenn wir also Klassen schreiben – gute Klassen – dann müssen wir sie so schreiben, dass wir ihre Daten richtig kapseln. Und Kapselung ist wirklich nur ein „großes“ Wort, das sich auf die Idee bezieht, seine Verantwortlichkeiten zu verwalten (oder seine Daten im Auge zu behalten).

Wenn wir also zum Beispiel eine Klasse schreiben, um einen WordPress-Beitrag darzustellen, hätten wir eine Klasse namens Post mit Eigenschaften wie publish, update, delete,  postData, publishDate, lastUpdatedData, deleteDate und so weiter.

Dann hätten wir Funktionen, die speziell dafür entwickelt wurden, Aktionen an einer Instanz der Post -Klasse durchzuführen.

In diesem Fall können wir …

  • veröffentlichen,
  • aktualisieren,
  • oder einen Beitrag löschen

Diese Methoden werden wahrscheinlich so verfügbar gemacht, dass andere Klassen sie nutzen können. Darüber hinaus nutzen diese Methoden wahrscheinlich auch andere Eigenschaften wie das publishDate oder das deleteDate.

Und hier kommt das Konzept der Sichtbarkeit ins Spiel. In der objektorientierten Programmierung bezieht sich die Kapselung nicht nur auf die Idee der Informationen, die eine Klasse enthält, sondern auch darauf, wie sie die Daten verfügbar macht.

Dies geschieht über drei Wege, die alle unten definiert sind:

  1. öffentliche Eigenschaften und Funktionen stehen jedem zur Nutzung zur Verfügung; Öffentliches  Eigentum wird jedoch normalerweise nicht angezeigt. Stattdessen stellen wir sicher, dass sie durch eine öffentliche Methode geändert werden können.
  2. geschützte Eigenschaften und Funktionen stehen zur Verwendung durch die Klasse und jede andere Klasse, die Informationen von ihr erbt, zur Verfügung. Darauf wird im nächsten Beitrag näher eingegangen.
  3. Private Eigenschaften und Funktionen sind diejenigen, die ausschließlich im Kontext einer bestimmten Klasse verwendet werden sollen. Dies können Eigenschaften sein, die verwendet werden, um interne Status oder Methoden zu verfolgen, die verwendet werden, um als Hilfsfunktionen für öffentliche Funktionen zu arbeiten, um ihre Arbeit abzuschließen.

Im weiteren Verlauf dieser Serie werden wir die Rolle sehen, die jedes dieser Elemente spielt, wenn es darum geht, klare, leicht verständliche und gut strukturierte Klassen zu schreiben.

Im Moment ist es jedoch wichtig zu verstehen, dass diese Wörter public, protected und private als Sichtbarkeitsmodifikatoren bezeichnet werden, weil sie, wie Sie feststellen können, die Sichtbarkeit einer Methode oder einer Eigenschaft in Bezug auf ihre Klasse und die verwalten Klassen, die davon erben und mit ihr interagieren.

Apropos Vererbung, darüber werde ich im nächsten Teil dieser Serie sprechen.

Abstraktion, Kapselung und WordPress

Die schlechte Nachricht: Klassen in WordPress

Hier ist die Sache: In WordPress sehen wir oft sehr, sehr große Klassen. Das ist nicht gut. Tatsächlich handelt es sich dabei um Antimuster, die als Gottklassen bezeichnet werden (die Idee ist, dass Sie eine einzige Klasse haben, die alles weiß).

Und wenn Sie eine Gott-Klasse haben, scheint es bequem zu sein, weil Sie alle Funktionen an einem Ort ablegen können. Aber

  • Es ist schwer zu testen,
  • es skaliert nicht,
  • es funktioniert nicht gut mit einer anderen Klasse (geschweige denn Klassen oder Bibliotheken von Drittanbietern),
  • es passt sich nicht gut an Veränderungen an.

Wenn Sie das tun, betreiben Sie letztendlich keine objektorientierte Programmierung. Sie nehmen Funktionen und werfen sie in eine Klasse. Und davon wollen wir wegkommen.

Die gute Nachricht: Schreibkurse auf WordPress

Dies wirft jedoch eine Frage auf: Warum versuchen, objektorientierte Programmierung mit WordPress zu lernen, wenn es kein solides Beispiel für objektorientierte Programmierung ist?

Das liegt daran, dass Sie immer noch guten objektorientierten Code auf WordPress schreiben können. Es kann immer noch gut mit WordPress interagieren und es kann immer noch gut mit vielen anderen Aspekten von WordPress spielen.

Ich weiß, es klingt kontraintuitiv, aber wenn wir tiefer in das Schreiben von objektorientiertem Code auf WordPress eintauchen, sollte dies klar werden.

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen