创建型模式(5)
单例模式:懒汉、饿汉、双重检查、静态内部类、枚举
简单工厂模式:
抽象工厂模式:每个具体工厂类创建不同类型对象
建造者模式:一个装配,一个创建
原型模式:clone()
结构型模式(7)
适配器模式:新旧接口的适配。
代理模式:
静态代理
动态代理:实现InvacationHandler接口(处理器接口:包含被代理对象)重写invoke()方法、Proxy(动态生成代理对象字节码)
桥接模式:处理多维度变化的场景。课程和年级有独自的继承体系,同时课程包含年级。
装饰模式:代替继承关系,扩展对象的新功能。可以解决多继承问题。示例;文件流。
组合模式:叶子节点和容器节点共同实现抽象构建。树形结构,统一调用。天然迭代。
外观模式:最少知识原则。客户只跟服务员交互即可,无需知道服务底层实现。
享元模式:共享完全相同或相似的对象。享元工厂类创建并保存享元对象。
行为型模式(11)
模板方法模式:部分易变算法抽象出来,使用时再实现。
命令模式:命令持有实际执行者对象。
迭代器模式:通常定义成内部类,可以直接访问外部类属性。
观察者模式:发布者持有订阅者集,然后遍历通知。
中介者模式:把网状关系变成一对多关系,对象间解耦。
备忘录模式:对象的每次修改前都备份一次内部状态到其它地方,以便以后恢复使用。
解释器模式:
状态模式:上下文持有一个状态,不同的状态类型有不同的行为定义。
策略模式:算法族。上下文持有某个具体算法。
责任链模式:将能够处理同一类请求的对象连成一条链。
访问模式: