[OOP] Abhängige und doch wiederverwertbare Klasse...
-
Die Idee von COM oder auch dem, was in dem PDF steht, (bin noch net durch) ist jedenfalls molto bene, die werde ich übernehmen, auch wenn man mich deswegen verurteilt, das ist mir egal, ich würde es selber niemals besser können.
MfG MAV
-
Nochmals hi!
Also vergesst das obige Design bitte, das ist Schwachfug, seh' ich ja ein.
Nun aber die Frage (ich beziehe mich jetzt auf COM bzw. das, was Shade mir als Link gab):
- Ist diese Art des Designs veraltet? Ich hatte so etwas gehört.
- Sollte man auch wirklich kleine Sachverhalte überhaupt so ausführlich und korrekt behandeln? Sollte man auch in kleinen Projekten für jede Beziehung gleich so handeln und Interfaces anlegen?
Ich frage deswegen, weil ich hörte, dass es absolut unsinnig ist so genau darauf zu achten, aber es klingt ja irgendwie ziemlich korrekt, schadet es eurer Meinung nach der Übersicht?
Sollte man Interfaces auch da platzieren, wo es unrealistisch, wenn aber auch möglich, ist hier eine andere Klasse für etwas bestimmten Wunsch zu nutzen? (also auch in Verbindung mit dem Konzept)Das kriecht mir noch etwas im Kopf rum, ansonsten sieht das gut aus, das werde ich wohl übernehmen, auch wenn ich deswegen blöd angemacht werden sollte :(,
MfG MAV, danke nochmals für den Link
-
so richtig?
Jede Klasse basiert auf einem eigenen Interface.
Klassen werden dann nurnoch über ihr eigenes interface angesprochen,sodass es im endeffekt für andere Klassen welche auf dieses Interface zugreifen absolut keinen Unterschied macht, wie die untergeordnete Klasse arbeitet.also würde man bei einer Klasse auto nicht die funktion anlassen benutzen-eben weils unterschiede zwischen normal und automatik gibt, sondern nur die virtuelle methode anlassen verwenden,und die untergeordnete Klasse entscheidet dann selber, was gemacht werden muss.
//edit also könnte man designtechnisch erst mit den interfaces anfangen,und wenn man mit dem design zufrieden ist entscheiden, wie die untergeordneten Klassen der interfaces arbeiten sollen..richtig?
-
Hi,
ja, so, wie du sagst, sollte es sein.
Man ruft die rein virtuellen (virtuell alleine macht aus der Klasse keine abstrakte Basisklasse) Methoden des Interfaces auf (Interface bedeutet m.W., alle Funktionen der Klasse sind rein virtuell).
Eine ziemlich gute Methode, mit der man Änderungen leicht vollführen kann und auch jederzeit etwas hinzufügen kann.
Dennoch habe ich immernoch die Fragen:Ist das Design in irgendeiner Weise veraltet?
Sollte man es strkt auch für kleinere Programmteile in kleinen Projekten anwenden?MfG MAV
-
das problem an dem design ist, dass es nur sehr begrenzt mit templates zusammenarbeitet..aufjedenfall bei template methoden gibts arge schwierigkeiten..
-
Hmmm, wieso?
-
template<class T> virtual void do_sth(T)=0;//fehler
aufjedenfall geht das beim bcb nicht,ich glaub das hat was mit der dynamischen bindung der funktion zu tun..
musste grad meine stream klasse deshalb umschreiben...ich arbeite jetzt überall mit den dummen void zeigern^^
-
otze schrieb:
musste grad meine stream klasse deshalb umschreiben...ich arbeite jetzt überall mit den dummen void zeigern^^
Vielleicht hilft dir ja http://www.schornboeck.net/artikel/virtual_template.htm ?
-
pfft was ein overheat...
ich glaub da zwing ich mich selber lieber dazu,meine read funktion mit void* zeigern zu füllen, die ich dann intern einmal umcaste, als dass ich den workaround nehme//edit shade, die idee is ja nich schlecht, und normalerweise würde ichs ja auch nehmen, aber nicht bei einem stream, den ich versuche dahingehend zu optimieren, dass er die maximale leistung bringt...
-
@Shade:
Was sagst du zu meinen Fragen?
Oder findest du, dass das jetzt wieder etwas ist, was jeder selber entscheiden sollte, ich glaube kaum.