本项目对各种设计模式从概念、角色、UML类图三个维度进行了简要介绍。目前有Java/Python/Scala/PHP实现,后面会加入Golang等,并一直在更新,欢迎提交PR。
设计模式分为三类:
- 创建型模式
- 关于如何创建实例的。目的是将 对象的创建 和 对象的使用 进行分离
- 包括:
- 简单工厂(SimpleFactory)
- 工厂方法(FactoryMethod)
- 抽象工厂(AbstractFactory)
- 原型模式(Prototype)
- 建造者模式(Builder)
- 单例模式(Singleton)
- 结构型模式
- 关于类及对象之间复合关系的。目的是解决对象之间依赖关系
- 包括:
- 外观模式(Facade)
- 适配器模式(Adapter)
- 装饰器模式(Decorator)
- 代理模式(Proxy)
- 桥接模式(Bridge)
- 组合模式(Composite)
- 享元模式(FlyWeight)
- 行为型模式
- 关于对象之间如何通信的。目的是提高对象之间的协作效率
- 包括:
- 迭代子模式(Iterator)
- 模板方法模式(TemplateMethod)
- 观察者模式(Observer)
- 状态模式(State)
- 策略模式(Strategy)
- 职责链模式(ResposibilityChain)
- 命令模式(Command)
- 访问者模式(Visitor)
- 中介者模式(Mediator)
- 备忘录模式(Memento)
- 解释器模式(Interpreter)