für ein Objekt Adapter Design, heißt es GoF:Adaptermuster: Warum sollten wir das Adpittee ableiten?
macht es schwieriger Adaptee Verhalten außer Kraft zu setzen. Es erfordert Subklassen Adaptee und Adapter machen auf die Unterklasse beziehen sich eher als die Adaptee selbst
Meine Frage ist, warum ist diese Subklassifizieren erforderlich ist, wenn wir die clases schaffen wie folgt:
class Target {
public :
virtual void op() = 0 ;
} ;
class Adaptee {
public :
void adapteeOp() {cout<<"adaptee op\n" ;}
} ;
class Adapter : public Target {
Adaptee *adaptee ;
public :
Adapter(Adaptee *a) : adaptee(a) {}
void op() {
// added behavior
cout<<"added behavior\n" ;
adaptee->adapteeOp() ;
// more added behavior
cout<<"more added behavior\n" ;
}
} ;
main() { //client
Adapter adapter(new Adaptee) ;
adapter.op() ;
}
Ich habe Ich war nicht in der Lage, die von GoF geforderte Unterklassenbildung zu würdigen, wenn ich auch hier das Verhalten übersteuern kann.
Bitte erläutern Sie, was ich verpasse.