Для проектирования объектного адаптера, GoF гласит:Шаблон адаптера: зачем нам нужно подклассировать Adaptee?
делает его труднее изменить поведение адаптируемый. Это потребует подклассов адаптируемый и сделать адаптер, обратитесь к подклассу, а не самого Adaptee
Мой вопрос заключается в том, что почему это подклассов требуется, когда мы создаем clases следующим образом:
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() ;
}
У меня есть не смог оценить требования к подклассу, упомянутые GoF, когда я также могу переопределить поведение.
Пожалуйста, объясните, в чем суть, которую я пропускаю.