Objc Runtime Datenstruktur "objc_class" - das "cache" Element

  • Klar besteht darber Einigkeit. Keine Einigkeit besteht darüber, dass Klassen ein Wesensmerkmal der OOP sind. Und keine Einigkeit bsteht darüber, dass Delegates die Klasse des Delegieres sind. Beides ist nämlich – sorry – grober Unfug.

    Und ich habe dir nicht vorgeworfen, dass du Exemplar verwenet hast. Du kannst Begriffe verwenden wie du willst.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von Tom9811
    ... Beides ist nämlich – sorry – grober Unfug.

    Für mich gibt es das abstrakte Konzept "Klasse" und das konkrete Sprachkonstrukt Klasse. (Das eine setze ich in Anführungszeichen, das andere verwende ich normal, um den Unterschied zu kennzeichnen.) Vielleicht wird es Dir so klar, falls nicht verschieben wird das ganze auf ein mögliches persönliches Treffen, sonst sehe ich hier vorallem Dissens.

    Wie Xt, Motif, Gtk belegen kann man sehr gut OOP ohne das Sprachkonstrukt Klasse betreiben, aber man benutzt dabei das Konzept "Klasse". Ich denke dem wirst Du zustimmen können.

    Der Begriff Prototyp impliziert für mich, daß das Konzept "Klasse" durch Prototypen verwendet wird. Eine "Klasse" wird implizit durch einen Prototypen definiert. Alle Exemplare einer "Klasse" haben dieselben Attribute und Methoden. Ich sehe hier bei der prototypenbasierten Programmierung keinen Widerspruch. Im Extremfall gibt es immer nur ein Exemplar einer "Klasse" und zwar den Prototypen. Wenn man nun verschiedene Exemplare einer "Klasse" anlegt, so lösen man das Implementierungsproblem in Self durch Delegation an den Prototypen, der die "Klasse" definiert. Was machen denn die Exemplare einer normalen Klasse in Smalltak anderes als per Delegation die Meldung an das Metaobjekt Klasse XYZ zu schicken wo die Meldung abgearbeitet wird?

    In den einem Fall siehst Du bloß nichts von der Delegation in dem anderem Fall hast Du per Sprachmittel Zugriff drauf, so wie das auch bei OOP mit C der Fall ist. Aber das sind wieder nur Implementationsdetails und keine Aspekte des abstrakten Konzept "Klasse". Mir scheint es Du verbindest mit dem Begriff Klasse vorallem das Sprachkonstrukt Klasse und weniger das Konzept "Klasse".
  • Nein, Prototypen sind bene keine Klassen in deinem Sinne, weil sie nämlich *keine* Auskunft darüber geben, welche Attribute und Methoden in der Instanz vorhanden sind. Und das war noch vor wenigen Beiträgen deine Definition von Klasse.
    Was zeichnet alle Exemplare einer bestimmten Klasse A aus?
    Sie haben alle dieselben Attribute und verstehen alle dieselben Nachrichten, und das ist das Mantra, um das sich alles bei der OOP dreht

    Mir ist es wirkoch gleich, welche Bezeichnungen du verwendest. Das ist Begriffsklauberei. Aber wenn du eine Bezeichnung verwendest, musst du schon inhaltlich dabei bleiben.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?