定义
将抽象部分与它的实现部分解耦,使得两者都能够独立变化。
结构
抽象类、扩充抽象类、实现类接口、具体实现类
实现被抽象类关联、被具体实现类实现
扩展抽象类和具体实现类分别作为独立变化的两个维度
应用实例
在不同操作系统下浏览不同格式图片,操作系统和图片格式分别作为两个维度。
优点
1、抽象和实现可以沿着各自的维度变化;
2、极大的减少了子类的个数;
3、提高了系统的可扩展性,符合开闭原则;
缺点
1、增加了系统的设计难度;
2、使用范围的局限性;
定义
将抽象部分与它的实现部分解耦,使得两者都能够独立变化。
结构
抽象类、扩充抽象类、实现类接口、具体实现类
实现被抽象类关联、被具体实现类实现
扩展抽象类和具体实现类分别作为独立变化的两个维度
应用实例
在不同操作系统下浏览不同格式图片,操作系统和图片格式分别作为两个维度。
优点
1、抽象和实现可以沿着各自的维度变化;
2、极大的减少了子类的个数;
3、提高了系统的可扩展性,符合开闭原则;
缺点
1、增加了系统的设计难度;
2、使用范围的局限性;