首先,我们将我们需要装饰的类,或者需要桥接的类命名为A类。而负责装饰或者桥接的类称为B类。
桥接模式:在此模式中,我们的主要类,A类,内容会有修改,A类中需要添加一个B类的实例作为成员。而我们需要达成的目的,是在继承与B的实现类中完成。
即:A1:A B1:B
A a=new A1();
a.b=new B1();(a.b是A中B类的成员)
装饰模式:在此模式中,我们的主要类A类,不需要做修改。而B类则继承于A类,同时又有一个A类的成员变量,和一个需要传入A类实例的构造函数。所以,如果我们需要对A类的实现进行包装的时候是在实例化A后,将A对象,传入B的实现中,进行B的方法来进行包装。
即:A1:A B1:B
A a=new A1();
B b=new B1(a);
b.XXX(B类用于包装A对象所使用的方法)s