 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
kanze Guest
|
Posted: Fri Oct 14, 2005 11:36 am Post subject: Re: Kleine Design-Technik |
|
|
Oliver S. wrote:
| Quote: | Ich schreibe häufiger Klassen die ich Plattform-abhängig
anpassen muss oder die ich so gestalte, daß sie sich
Plattform-abhängig anpassen können müssen. Dabei wäre immer
wieder Code der Plattform-abhängig ist eng integriert mit
portablem Code. Beim Schrei- ben einer performanten
Speicherverwaltungs-Library mit dem Klassennamen Mallocator
(malloc() und free() bzw oft darauf basierende
Standard-Implementationen von new und delete waren mir oft zu
langsam) ist mir eine kleine Design-Technik in den Kopf gekom-
men die das erleichtert:
Ich definiere zuest eine Klasse in der alle
plattform-unabhängigen Datenstrukturen und Funktionen liegen,
diese heißt dann bei mir XxxCommons (Xxx ist der jeweilige
Klassenname), darauf basiert dann eine Klasse (mit
protected-Ableitung) namens XxxImpl, die je nach Pattform per
#ifdefs kompiliert wird und darauf liegt dann wiederum die
Klasse die der Nutzer nacher verwendet, nämlich Xxx (auch mit
protected -Ableitung).
Ich kann mir nicht vorstellen, daß ich da was neues erfunden
hab, aber es ist schon ziemlich praktisch, denn die Benutzung
von #ifdefs wird dadurch stark eingeschränkt. Hat dieses
Pattern vielleicht schon einen Namen oder gibt's gar was noch
smarteres?
|
Ich mache es etwas ähnlich, obwohl meistens habe ich keine
XxxCommons-Klasse -- Xxx benutzt zwar XxxImpl (mit den
Plattform-Abhängigkeinten), aber XxxImpl seiner Seite ist
meinstens selbständig.
Auch: ich benutze keine #ifdefs, sondern halte eine
Implementierungsdatei per Plattform, in einem
Plattform-abhängigen Verzeichnis, das durch eine -I-Option
ausgewählt wird.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Kim Kulling Guest
|
Posted: Wed Oct 19, 2005 8:19 am Post subject: Re: Kleine Design-Technik |
|
|
Oliver S. wrote:
| Quote: | Ich schreibe häufiger Klassen die ich Plattform-abhängig anpassen muss
oder die ich so gestalte, daß sie sich Plattform-abhängig anpassen können
müssen. Dabei wäre immer wieder Code der Plattform-abhängig ist eng
integriert mit portablem Code. Beim Schrei- ben einer performanten
Speicherverwaltungs-Library mit dem Klassennamen Mallocator (malloc() und
free() bzw oft darauf basierende Standard-Implementationen von new und
delete waren mir oft zu langsam) ist mir eine kleine Design-Technik in den
Kopf gekom- men die das erleichtert: Ich definiere zuest eine Klasse in
der alle plattform-unabhängigen Datenstrukturen und Funktionen liegen,
diese heißt dann bei mir XxxCommons (Xxx ist der jeweilige Klassenname),
darauf basiert dann eine Klasse (mit protected-Ableitung) namens XxxImpl,
die je nach Pattform per #ifdefs kompiliert wird und darauf liegt dann
wiederum die Klasse die der Nutzer nacher verwendet, nämlich Xxx (auch mit
protected -Ableitung). Ich kann mir nicht vorstellen, daß ich da was neues
erfunden hab, aber es ist schon ziemlich praktisch, denn die Benutzung von
#ifdefs wird dadurch stark eingeschränkt. Hat dieses Pattern vielleicht
schon einen Namen oder gibt's gar was noch smarteres?
Könnte das nicht ein Brücken-Pattern sein? |
MfG
K.Kulling
--
Kim Kulling
[email]sir_kimmi (AT) gmx (DOT) de[/email]
http://www.sir-kimmi.de
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|