C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Re: Kleine Design-Technik

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
kanze
Guest





PostPosted: Fri Oct 14, 2005 11:36 am    Post subject: Re: Kleine Design-Technik Reply with quote



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





PostPosted: Wed Oct 19, 2005 8:19 am    Post subject: Re: Kleine Design-Technik Reply with quote



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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.