设计模式复习(大学那本设计模式绿皮书)
一、七个原则(默写,哈哈)
开闭原则
依赖倒置
接口隔离
单一职责
迪米特
里氏替换
合成复用
二、GoF 23种设计模式(需熟记)
1、创建型
单例 (三个要点:1.某个类只能有一个实例 2. 它必须自行创建这个实例 3. 它必须自行向整个系统提供这个实例) 应用:1. Runtime类 2. 主键编号生成器 3. Spring的bean
原型 (Prototye ConcretePrototype Client) 这里Prototype可以是Object 注意深克隆与浅克隆 深克隆可能需要通过序列化机制
建造者(Builder ConcreteBuilder Product Director)产品比较复杂的情况,比如产品是肯德基套餐,包含食品和饮料。建造者类需要返回产品类。应用:JavaMail
工厂 ( Product ConcreteProduct Factory ConcreteFactory)
抽象工厂 (AbstractProduct ConcreteProduct AbstractFactory ConcreteFactory)
2、结构型
适配器 (Target Adapter Adaptee)适配器类Adapter继承Adaptee,实现Target接口
桥接
组合
装饰
外观
享元
代理 (Subject Proxy RealSubject)Proxy代理类和RealSubject被代理类,都实现了Subject接口,并且Proxy持有RealSubject的对象,以便调用真实业务方法
3、行为型
职责链
命令
解释器
迭代器
中介者
备忘录
观察者
状态
策略
模板方法
访问者