Objektorientierte Systeme, Paradigmen und Philosophie
(black7375.tistory.com)-
Der größte Unterschied zwischen Klassen und Prototypen liegt in der Art der Objekterzeugung [Klasse -> Instanz vs. Objekt -> kopiertes Objekt].
-
Die größte Gemeinsamkeit ist die Objektorientierung: Programme werden in Einheiten namens Objekte aufgeteilt, die miteinander interagieren.
-
Der einfachste Weg, die für Objektorientierung zentrale Kapselung gut umzusetzen, ist eine gute Abstraktion.
-
Abstraktion kann man unter anderem nach datenorientierten Eigenschaften (klassisches OOP), Form (Typ), Zustand (datengetriebenes Design) sowie beziehungszentrierten Aspekten wie Zeit (prozedurale Programmierung), Verhalten (funktionale Programmierung), Definition (logische Programmierung) und Kontext (Domain-driven Design, AOP) betrachten.
-
Um gut zu klassifizieren und zu entwerfen, ist es hilfreich, verschiedene Kategorien zu verstehen, die dabei helfen, Denkformen zu erkennen [z. B. Kants 4 Klassen und 12 Kategorien].
-
-
Philosophie und Paradigmen
-
Prozedural: Zeit beeinflusst die meisten Abstraktionen, und Syntax wie
goto, die Kontexte vermischt, ist ungünstig. -
Funktional: Da versucht wird, Dinge in Form von Verhalten auszudrücken, besteht eine enge Beziehung zum Typ (zur Form).
-
Logisch: Logik wird aus Fakten und Regeln aufgebaut; durch Anfragen lassen sich Ergebnisse der Prädikatenlogik erhalten.
-
Traditionelles OOP: intuitiv. Allerdings ist es unmöglich, perfekte Eigenschaften vollständig zu ermitteln.
-
Datengetriebenes Design: Anders als die funktionale Programmierung, die den Zustand der Logik behandelt, versucht es, den Zustand im Computer selbst zu reduzieren. Das erhöht die Cache-Hit-Rate und verbessert die Performance.
-
Domain-driven Design: Anders als traditionelles OOP wird je nach Domäne und Kontext unterschiedlich entworfen (ähnlich der Bildtheorie/Gebrauchssemantik); die Implementierung wird einfacher, wenn AOP eingesetzt wird, um Dependency Injection für Subdomänen vorzunehmen.
-
-
MVP
-
Prototyping: Es sollten wichtige Funktionen enthalten sein, und was wichtig ist, kann sich je nach Perspektive von Designern, Entwicklern, Finanzen usw. unterscheiden. Typische Anforderungen hängen von der Ähnlichkeit zum Produkt ab, das viele Menschen für wichtig halten.
-
MVP: Es muss mit einem Mindestmaß an Fertigstellung nutzbar sein und sollte ähnlich zu dem Produkt entworfen werden, das als Endzustand gedacht ist.
-
-
Objektorientierung und Sein
-
Platon: Universelle Eigenschaften sind unveränderlich und real; individuelle Existenzen bestehen, ohne universelle Eigenschaften vollständig zu besitzen.
-
Aristoteles: Nur individuelle Einzelwesen sind grundlegende Substanzen, und Universalien sind Repräsentationen, die in Über-/Unterordnungs- und Enthaltenseinsbeziehungen erscheinen.
-
Klasse-Instanz entspricht Platons Ideenlehre, Prototyp-kopiertes Objekt ähnelt Aristoteles' Substanzlehre.
-
Mein ursprüngliches Ziel war es,
-
zu zeigen, dass traditionelles OOP der Bildtheorie ähnelt und Domain-driven Design der Gebrauchssemantik.
-
sowie, dass Klasse-Instanz Platons Ideenlehre entspricht und Prototyp-kopiertes Objekt Aristoteles' Substanzlehre ähnelt.
Aber es ist viel länger geworden als gedacht.
Ohne entsprechendes Vorwissen könnte es sich stellenweise etwas schwierig anfühlen.
6 Kommentare
Warum hat sich JavaScript für Prototypen entschieden?
https://de.news.hada.io/topic?id=5532
Das ist ein Text, den ich geschrieben habe, nachdem ich das gesehen hatte.
Lesen wir ihn einmal im Vergleich wie diesen Artikel!
Vielen Dank!!
Oh? Anscheinend kann man keine mehreren Leerzeichen eingeben ;_;
Ah, es gab einige Fälle, in denen absichtlich Platz eingenommen wurde..
Leere Zeilen und mehrere Leerzeichen habe ich daher reduziert schluchz
Verstanden.
Das sollte ich beim nächsten Mal berücksichtigen.