设计模式分类
创建型:
单例模式(Singleton)、原型模式(Prototype)、建造者(Builder)
工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)
结构型:
适配器模式(Adapter)、桥接模式(Bridge)
享元模式(Flyweight)、组合模式(Composite)
代理模式(Proxy)、门面模式(Facade)、装饰器模式(Decorator)
行为型:
模板方法模式(Template Method)、策略模式(Strategy)
迭代器模式(Iterator)、备忘录模式(Memmento)、访问者模式(Visitor)
中介者模式(Mediator)、解释器模式(Interpreter)、观察者模式(Observer)
命令模式(Command)、状态模式(State)、责任链模式(Chain of Responsibility)
设计模式对比及编程思想总结
设计模式 | 目的 | 框架源码 |
创建型 | ||
工厂模式 (Factory) | 封装创建细节 | LoggerFactory |
单例模式 (Singleton) | 保证独一无二 | Runtime BeanFactory |
原型模式 (Prototype) | 高效创建对象 | ArrayList PrototypeBean |
建造者(Builder) | 开放个性配置步骤 | StringBuilderBeanDefinitionBuilder |
结构型 | ||
代理 (Proxy) | 增强职责 | ProxyFactoryBeanJdkDynamicAopProxy CglibAopProxy |
门面模式(Facade) | 统一访问入口 | JdbcUtil |
装饰器(Decorator) | 灵活扩展 同宗同源 | BufferedReader InputStream |
享元模式(Flyweight) | 共享资源池 | String、Integer |
组合 (Composite) | 统一整体和个体 | HashMap、SqlNode |
适配器 (Adapter) | 兼容转换 | HandlerAdapter |
桥接(Bridge) | 不允许使用继承 | DriverManager |
行为型 | ||
委派(Delegate) | 只对结果负责 | ClassLoaderBeandefinitionParserDelegate |
模板(Template) | 逻辑复用 | JdbcTemplate |
策略(Strategy) | 选择权交于用户 | ComparatorInstantiationStrategy |
责任链(Chain) | 解耦处理逻辑 | FilterChainPipeline |
迭代器 (Iterator) | 统一集合访问方式 | Iterater |
命令 (Command) | 解耦请求与处理 | Runnable |
状态(State) | 绑定状态与行为 | Lifecycle |
备忘录(Memento) | 备份 | |
中介者(Mediator) | 统一管理网状资源 | Timer |
解释器(Interpreter) | 特定语法解析 | Pattern |
观察者(Observer) | 解耦观察者与被观察者 | ContextLoaderListener |
访问者(Visitor) | 结构数据结构 和数据操作 | BeanDefinitionVisitor |