Thread Ein paar Programmiertricks
(39 answers)
Opened by roooot at 2008-03-22 23:16 murphy+2008-03-24 06:01:22-- Tatsächlich? meine Recherche dazu zählt Smalltalk nicht zu den Prototypischen. WP-> Smalltalk Programmiersprache murphy+2008-03-24 06:01:22-- nein, ich habe mich anfang der 90er jahrelang nur theoretisch damit befasst und mir damals für meinen 68000er Assembler ein OO Macropacket gestrickt um Kapselung und Vererbung umzusetzen. Die Literatur von damals ist leider nicht reproduzierbar, da IT-Terminologie von Modeströmungen bestimmt wird.[+4] Es ist mittlerweile üblich prototypische OO als "Classless" zu bezeichnen. aber die Leute die solche Kriterien herausarbeiten arbeiten IMHO vorwiegend mit statischen Compilersprachen, z.B. kann ich in Perl sehr wohl eine Klasse während der Laufzeit manipulieren ("kann" ne "sollte" !). Auch sind viele Design Patterns in Perl überflüssig. Mein Verständnis ist das ein "Objekt" eine Struktur ist die Daten und Methoden kaspelt. [3] Eine "Klasse" ist zum einen eine Menge von Objekten die sich aus der Konstruktion aus einem Vorlageobjekt ergeben zum anderen die Bezeichnung des Vorlageobjekts (als Repräsentanten o. Erzeuger der Klasse). Die einzelnen Mitglieder einer Klasse heißen "Exemplare" oder "Instanz" [1] Das legt bisher alles nicht fest wo Daten und Methoden manipuliert werden können/dürfen und wie Vererbung funktioniert. In der Mathematik ist es auch durchaus üblich "Klassen" zu schachteln, da kann sehr wohl das Exemplar der einen Oberklasse der Repräsentant (d.h. hier Prototyp,Singletonklasse) einer Unterklasse sein. [2] M.a.W. Links vom Konstruktor steht die Objektinstanz rechts die Objektklasse, wie z.B. in JS mit a=new Array(1,2,3); Ich gebe zu dass ich mit dieser allgemeinen Terminologie in der Minderheit bin, aber ich denke die ist sauberer als diese ganzen Überfrachtungen mit Modelldetails die nur in C++ oder Java Sinn machen, um nachträglich Design Patterns einzuführen die diese Schranken wieder kontrolliert aufweichen. Ich muss mir wohl heutzutage eine neue unverbrauchte Bezeichner ausdenken. Ciao Kurt [1] "Instance" ist engl für Exemplar, "Instanz" ist eine dieser schlampigen Übersetzungen wie z.B. "Netzwerk" ) [2] Randbemerkung: Klassen sind mathematisch AFAIK Mengen die sich nicht selbst enthalten dürfen, z.B. sowas wie die "Menge aller nichtleeren Mengen" würde sonst viele Mathemodelle kaputt machen, deswegen Klassen. [3] so betrachtet ist auch ein Closure ein Objekt, mit z.B. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 sub new_closure { my %self=@_; # initdata $self{methode1} = sub { my ($para1)=@_; return "$para1 $self{data1}"; }; return \%self; } $inst=new_closure( data1 =>"value 1", ); print $inst->{methode1}("GET: "); baue ich das JS-Modell schon recht gut nach. NACHTRAG: [4] AFAIR ... meine erste Begegnung war ein Artikel über Schiffssimulationen mit Simula. Kann auch sein dass irgendwo das Wort "Klasse" gar nicht fiel sondern nur sowas wie "Objekt Auto mit Exemplar Corsa" ... TMTOWTDYOG (there's more than one way to dig your own grave)
|