1.创建型模式:
*工厂模式(Factory Pattern):对象的创建
抽象工厂模式(Abstract Factory Pattern)
*单例模式(Singleton Pattern):springBean中对象的单例
建造者模式(Builder Pattern):成员对象的创建和组装分离:StringBuilder类的append方法、SQL中的PrepareStatement方法
*原型模式(Prototype Pattern):对象的复制:springBean中对象的原型
2.结构型模式
*适配器模式(Adapter Pattern):字节流转字符流:new InputStreamReader(InputStream)
*桥接模式(Bridge Pattern):解决多继承,将多继承转换为多维度组合
过滤器模式(Filter、Criteria Pattern)
*组合模式(Composite Pattern):处理树形结构,如操作系统的资源管理器、组织结构的处理、xml文件解析
*装饰器模式(Decorator Pattern):IO流
*外观模式(Facade Pattern):工具类封装,便于别人调用,如JDBC工具类封装
*享元模式(Flyweight Pattern):对象共享不变的变量、节省内存:线程池、数据库连接池、String类的常量池
*代理模式(Proxy Pattern):动态代理spring中的AOP实现
3.行为型模式
*责任链模式(Chain of Responsibility Pattern):一个try对应多个catch、servlet中多个过滤器的链式处理
*命令模式(Command Pattern):数据库事务机制(批量命令要么全部执行,要么全部不执行)
解释器模式(Interpreter Pattern)
*迭代器模式(Iterator Pattern):集合的遍历
*中介者模式(Mediator Pattern):MVC模式中的controller就是一个中介,model和view都通过controller打交道
*备忘录模式(Memento Pattern):撤销操作、事务回滚
*观察者模式(Observer Pattern):servlet监听器
状态模式(State Pattern):酒店预订状态改变
空对象模式(Null Object Pattern)
策略模式(Strategy Pattern):crm系统中根据不同的用户进行不同的打折策略
*模板模式(Template Pattern):封装不变的方法:数据库访问的封装、Junit单元测试、servlet关于doGet/doPost方法调用
访问者模式(Visitor Pattern)