1. 特点
(1)将抽象化和实现化解耦,使得二者可以独立地变化,是动态的。(2)实现化的改变对客户端透明,即使用者感觉不出后的变化。
2. 代码架构(1)定义抽象类,抽象子类。(2)抽象类中聚合实现化类,即含有实现化类的实例,并且将商业方法委派给实现化类中的对应方法。
(3)定义实现化类接口,实现化具体类。
3. 典型应用场景(1)咖啡(按容量分为大杯、中杯;按加奶分为加奶、不加奶)。以后可能会有小杯,加糖不加糖,等等。如果全部用子类继承实现,组合太多,不太不现实。不如以咖啡大中小杯为抽象化类,加糖、加奶为实现化类。
(2)AWT的Peer架构。
参考文献:
1. 《设计模式》 板桥里人
2. 《Java与模式》 阎宏
没有评论:
发表评论