[JAVA] Versuchen Sie, Ihre eigene Objektorientierung zu organisieren

Am Anfang

Nachdem ich verschiedene Dinge in der Geschichte des Klassendesigns untersucht hatte, ging ich allmählich zurück und kam zur Objektorientierung. Zu dieser Zeit wurde mir klar, dass die Objektorientierung nicht wirklich in Form war. Da Objektorientierung eine "Idee" ist, kann sie überhaupt genau definiert werden? Es gibt eine Frage, aber vorerst habe ich beschlossen, sie einfach auf meine eigene Weise zu organisieren.

Objektorientierte Prinzipien

Es gibt drei Prinzipien, die immer auftauchen, wenn Sie die Objektorientierung googeln. ·Verkapselung ・ Vererbung ・ Polymorphismus

Verkapselung

Die Kapselung "versteckt" sich. Was bedeutet es, es zu verstecken? Vergleichen wir es also mit einem Auto.

Es gibt verschiedene Teile im Auto. Der Fahrer kann das Auto fahren, ohne die Teile einzeln zu kennen. Was der Fahrer wissen sollte ・ Gas geben = Geschwindigkeit erhöhen ・ Bremse treten = Geschwindigkeit reduzieren Alles was Sie tun müssen, ist die "Fahrmethode" wie zu kennen. Mit anderen Worten, Sie müssen nur die komplizierten Bewegungen im Inneren verbergen und wissen, wie man sie einfach benutzt.

Das Wichtigste dabei ist, dass jeder Teil eine gründliche Rolle spielt. Wenn das Gaspedal den Scheibenwischer bewegt oder wenn die Bremse ihn stört und nicht beschleunigt, selbst wenn das Gaspedal betätigt wird, handelt es sich nicht um ein Auto.

In Bezug auf die Programmierung haben "Klassen (Teile)" eine unabhängige Rolle und sollten "einfach zu bedienen" sein, ohne deren Inhalt zu verstehen. Ich kann Werte in einer Liste speichern, ohne zu wissen, was ArrayList.add implementiert ist.

Erbe

Vererbung ist "Standardisierung / Abstraktion".

Vergleichen wir es noch einmal mit einem Auto. Es gibt verschiedene Arten von Autos wie leichte Autos, Limousinen und Lastwagen. Und alle Autos haben etwas gemeinsam, wie "Laufen" und "Menschen tragen". Mit anderen Worten, der Standard eines Autos kann gemeinsame Eigenschaften haben.

In Bezug auf die Programmierung entspricht es der Eltern-Kind-Beziehung einer Schnittstelle oder Klasse. Die Vererbung in Java wird häufig verwendet, um die Methoden der übergeordneten Klasse zu erben. Dies ist jedoch nur eine Funktion, und ich denke, das Wichtigste ist die Idee, dieselben Eigenschaften zusammen zu "standardisieren / abstrahieren". Eine gut standardisierte Quelle sollte klar sichtbar sein und nur wenige Korrekturen für das Hinzufügen und Ändern von Funktionen enthalten.

Polymorphismus

Polymorphismus wird Polymorphismus genannt, was bedeutet, dass dieselbe Methode unterschiedlich funktioniert. Dies wird erreicht, indem tatsächlich programmiert wird, was in der obigen Vererbung standardisiert wurde.

Im Vergleich zu den oben genannten gibt es verschiedene Arten von Autos. Der Hersteller und der Motortyp ändern sich je nach Typ. Der Treiber kann jedoch die verschiedenen installierten Motoren betreiben, ohne es zu merken. Dies liegt daran, dass das für jeden Motor geeignete Verhalten für dieselbe Methode zum "Starten des Motors" implementiert wird.

Mit anderen Worten, Car.startEngine weist Polymorphismus auf, indem verschiedene Implementierungen auf der Vererbungsseite implementiert werden.

Zusammenfassung

Ich denke, dass die Idee, sich des oben genannten Drei-Generationen-Prinzips bewusst zu sein, zur Objektorientierung führt. Wenn Sie sich der Objektorientierung bewusst sind, können Sie hochgradig unabhängige und flexible Quellen schreiben. Ich denke, es wird die Quelle einfacher zu ändern und lesbarer machen.

Ich war ziemlich erfrischt, als ich organisierte, während ich auf meine eigene Weise schrieb. Natürlich glaube ich nicht, dass man sofort bewusst programmieren kann, wenn man nur das Konzept versteht. Sie können es erwerben, indem Sie Designmuster studieren und Designerfahrung sammeln. Ich werde weiterhin mein Bestes geben!

Ich werde es für eine lange Zeit leicht schreiben. Vielen Dank!

Apropos

Alan Kay, der Schöpfer des Wortes, sagt, dass das Wort objektorientiert ein Fehler ist. Hervorzuheben ist nicht "Objekt", sondern "Messaging" ... [Objektorientierte Wikipedia](https://ja.wikipedia.org/wiki/Object Oriented)

Referenz

Was ist Objektorientierung? Ich habe versucht, mit einem leicht verständlichen Beispiel zu erklären. Was ich gelernt habe, nachdem ich 10 Jahre lang gegen die Objektorientierung gekämpft hatte Was ist objektorientierte Programmierung?

Recommended Posts

Versuchen Sie, Ihre eigene Objektorientierung zu organisieren
Ich habe versucht, die Objektorientierung auf meine Weise zusammenzufassen.
Java: Versuchen Sie, einen durch Kommas getrennten Formatierer selbst zu implementieren
Was ein Anfänger getan hat, um die Objektorientierung zu verstehen
Informationen zur Objektorientierung
[Persönliches Memo] Ich habe versucht, die Objektorientierung leicht zu studieren
Versuche Edelstein freizugeben
Was ist Objektorientierung?
Machen Sie Ihren eigenen Pomodoro
19 Entspricht der Objekterstellung
Verwendung der Getter / Setter-Methode (in Objektorientierung)
So lesen Sie Ihre eigene YAML-Datei (*****. Yml) in Java
[Forge] So registrieren Sie Ihre eigene Entität und Ihr Entity Render in 1.13.2