Als «oop» getaggte Fragen

Objektorientierte Programmierung ist ein Programmierparadigma unter Verwendung von "Objekten": Datenstrukturen, die aus Datenfeldern und Methoden zusammen mit ihren Interaktionen bestehen.


11
Wird die pImpl-Sprache in der Praxis wirklich verwendet?
Ich lese das Buch "Exceptional C ++" von Herb Sutter und habe in diesem Buch etwas über die pImpl-Sprache gelernt. Grundsätzlich besteht die Idee darin, eine Struktur für die privateObjekte von a zu erstellen classund diese dynamisch zuzuweisen, um die Kompilierungszeit zu verkürzen (und auch die privaten Implementierungen besser auszublenden). …
165 c++  oop  pimpl-idiom 


8
Iterieren Sie über Objektattribute in Python
Ich habe ein Python-Objekt mit mehreren Attributen und Methoden. Ich möchte über Objektattribute iterieren. class my_python_obj(object): attr1='a' attr2='b' attr3='c' def method1(self, etc, etc): #Statements Ich möchte ein Wörterbuch generieren, das alle Objektattribute und ihre aktuellen Werte enthält, aber ich möchte dies auf dynamische Weise tun (wenn ich später ein weiteres …


9
Was ist der Unterschied zwischen funktionalen und imperativen Programmiersprachen?
Die meisten gängigen Sprachen, einschließlich objektorientierter Programmiersprachen (OOP) wie C #, Visual Basic, C ++ und Java, wurden hauptsächlich zur Unterstützung der imperativen (prozeduralen) Programmierung entwickelt, während Haskell / Gofer-ähnliche Sprachen rein funktional sind. Kann jemand näher auf den Unterschied zwischen diesen beiden Programmierarten eingehen? Ich weiß, dass es von …

22
Objektorientierung in C.
Was wäre eine Reihe von raffinierten Präprozessor-Hacks (ANSI C89 / ISO C90-kompatibel), die eine hässliche (aber verwendbare) Objektorientierung in C ermöglichen? Ich bin mit einigen verschiedenen objektorientierten Sprachen vertraut. Antworten Sie daher bitte nicht mit Antworten wie "Learn C ++!". Ich habe " Objektorientierte Programmierung mit ANSI C " (Vorsicht: …
157 c  oop  object 




13
Was ist ein Delegierter? [geschlossen]
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 6 Jahren . Verbessere diese Frage Ich bin verwirrt, welche Rolle …
152 oop  delegates 

18
Methodenverkettung - warum ist es eine gute Praxis oder nicht?
Methodenverkettung ist die Praxis von Objektmethoden, die das Objekt selbst zurückgeben, damit das Ergebnis für eine andere Methode aufgerufen wird. So was: participant.addSchedule(events[1]).addSchedule(events[2]).setStatus('attending').save() Dies scheint eine gute Praxis zu sein, da es lesbaren Code oder eine "fließende Schnittstelle" erzeugt. Für mich scheint es jedoch die Objektaufrufnotation zu brechen, die durch …

12
Vererbung vs. Aggregation [geschlossen]
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …

14
Was bedeutet "niedrige Kopplung und hohe Kohäsion"?
Ich habe Probleme, die Aussage zu verstehen low in coupling and high in cohesion. Ich habe viel darüber gegoogelt und gelesen, finde es aber immer noch schwer zu verstehen. Was ich verstehe, High cohesionbedeutet, dass wir Klassen haben sollten, die darauf spezialisiert sind, eine bestimmte Funktion auszuführen. Hoffe das ist …
151 oop  ooad 

4
ActiveRecord-Attributmethoden überschreiben
Ein Beispiel für das, wovon ich spreche: class Person < ActiveRecord::Base def name=(name) super(name.capitalize) end def name super().downcase # not sure why you'd do this; this is just an example end end Dies scheint zu funktionieren, aber ich habe gerade den Abschnitt über das Überschreiben von Attributmethoden in den ActiveRecord …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.