11.0 设计模式DesignPattern

1 创建型设计模式 2 结构型设计模式 3 行为型设计模式 设计模式六大原则:单一职责 里氏替换 依赖倒置 最小接口 迪米特 开闭 这些只能叫原则,叫建议,没有实际的招数 面向对象23种设计模式:面向对象语言开发过程中,遇到的种种场景和问题,提出了解决方案和思路, 沉淀下来就变成了设计模式 解决具体问题的具体招数---套路---站在前辈的肩膀上 创建型设计模式:关注对象的创建 结构型设计模式:关注类与类之间的关系 行为型设计模式:关注对象和行为的分离 创建型设计模式5:关注对象的创建, 对象的创建不就是new()一下?其实有很多套路 单例模式:就是限制了对象的创建,重用了对象 原型模式:换个方式创建对象,不走构造函数,而是内存拷贝 简单工厂:不直接new,把对象创建转移到工厂类 (简单工厂不属于23种设计模式) 工厂方法:屏蔽对象的创建;留下了扩展空间; 抽象工厂:屏蔽对象的创建;约束强制保障产品簇; 建造者模式:复杂的工厂方法 结构型设计模式7:关注类与类之间的关系 纵向关系:继承≈≈实现 超强关联 横向关系:>组合>聚合>关联>依赖 依赖是出现在方法内部 另外三个是用语义区分的,可能都是一个属性 Person类 有个大脑Header属性 组合(同生共死) Person类 有个手/脚 聚合(成人) Person类 有个iPhone属性 关联(非必须) 组合优于继承,结构型设计模式的核心 适配器模式:解决重构的问题,新东西和旧系统不吻合,通过继承/组合进行适配 代理模式:通过代理完成对业务类的访问,包一层方便任意功能扩展 装饰器模式:通过组合+继承,完成对象功能动态扩展 外观模式,组合模式,桥接模式,享元模式 行为型设计模式11:关注对象和行为的分离 模板方法设计模式:在基类父类定义流程,把可变逻辑分离到不同子类实现 观察者模式:一个对象动作触发多个对象的行为,通过观察者可以去掉对象的依赖,支持各种自定义和扩展 责任链模式:请求的处理流程,沿着链子顺序执行,还运行链子扩展和订制