设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
类模式:调用者继承复用依赖对象,并调用其方法
设计模式 | 依赖对象(父类) | 调用者(子类) | 调用者的方法 |
---|---|---|---|
类适配器模式Adapter | Adaptee适配者 | Target接口 ClassAdapter类适配器 |
通过继承,调用父类方法 |
对象模式:调用者合成复用依赖对象,并调用其方法
设计模式 | 依赖对象类 | 调用者类 | 调用者的方法 | 备注 |
---|---|---|---|---|
对象适配器模式Adapter | Adaptee适配者 | Target接口 ObjectAdapter对象适配器 |
通过持有具体类对象引用, 调用具体类的方法 |
扩展结构 |
代理模式Proxy | Subject接口 RealSubject真实主题 |
Subject接口 Proxy代理 |
通过持有具体类对象引用, 调用并增强具体类的方法 |
扩展结构 |
外观模式Facade | SubSystem子系统角色 | Facade外观角色 | 通过持有多种具体类引用, 调用多种具体类对象的多个方法 |
扩展结构 |
桥接模式Bridge | Implementor接口 ConcreteImplementor具体实现角色 |
Abstraction抽象类 RefinedAbstraction扩展抽象角色 |
通过持有接口类型对象引用, 调用并增强接口的方法 |
可替换结构 (多态) |
装饰模式Decorator | Component接口 Decorator抽象装饰 |
Decorator类 ConcreteDecorator具体装饰 |
通过持有自身接口类型对象引用, 调用并增强接口的方法 |
链表结构 |
组合模式Composite | Composite接口 Leaf叶子 |
Composite接口 Composite树枝 |
通过持有自身接口类型多个对象引用数组, 将对象从数组中添加或移除 将数组元素的统一看待 |
树型结构 |
享元模式Flyweight | Flyweight接口 ConcreteFlyweight具体享元角色 |
FlyweightFactory享元工厂角色 | 通过持有某接口类型多个对象引用HashMap, 将对象从HashMap中获取 若不存在则创建对象 若存在则直接返回对象 |
共享结构 |
原文:https://www.cnblogs.com/rayoli/p/12748107.html