图说设计模式
创建型(Design Pattern) §
1. 简单工厂(Simple Factory) §
一个Factory根据传入的参数不同生产各种实例Product
Java获取不同加密算法的密钥生成器
2. 工厂方法(Factory Method) §
一个Factory有一个对应的Product
JDBC
3. 抽象工厂(Abstract Factory) §
4. 建造者模式(Builder) §
Builder作为抽象父类, 定义了ABC等若干的build方法
在ConcreteBuilder中实例Product, 并且实现Builder中的build方法, 留一个return Product的对外方法
由Director选取哪一种ConcreteBuilder进行build
5. 单例模式(Singleton) §
保证一个类只有一个实例, 并且提供一个访问该实例的全局访问点
- 构造函数私有
- 靠一个get的static方法return出去一个static的成员
结构型(Structural Pattern) §
1. 适配器模式(Adapter) §
把需要与外界交互那个接口继承下来, 再在继承下来的Adapter
里面声明多个Adaptee
进行交互
比如说想要调用XXuse()
方法, 但是只有use()
方法, 就可以在子类里面调用了
注意: C++父类使用子类方法是在父类的virtual方法情况下, 与Java不同
3. 装饰器模式(Decorator) §
4. 外观模式(Facade) §
5. 享元模式(Flyweight) §
创建一个享元工厂来负责维护一个享元池(Flyweight Pool)用于存储具有相同内部状态的享元对象。
享元模式的目的就是使用共享技术来实现大量细粒度对象的复用。
6. 代理模式(Proxy) §
行为模式(Behavioral Pattern) §
1. 命令模式(Command) §
将命令封装成对象