Head First设计模式梳理

基础:封装、抽象、继承、多态

原则:

封装变化

多用组合、少用抽象

针对接口编程、而不是针对实现编程

为交互对象之间的松耦合设计而努力

依赖抽象,不依赖具体类

思考:

1.模式是一种场景,和模式具体的实现无关,比如适配器模式与外观模式,虽然他们的实现类似,但是它们是为了解决不同的问题场景而使用的;

2.好的设计应是在不修改原先的基础上增加新的功能,增量开发也是这个道理;

3.运行期间对象关系不会改变的情况可使用继承,否则请使用组合;

1.策略模式:定义算法族,分别封装起来,让它们之间可以相互替换,让算法的变化独立使用算法的客户;

2.观察者模式:使对象之间定义一对多的关系,这样一来, 对象的状态变化,依赖它的对象都能够收到通知,并自动更新;

3.装饰者模式:动态的将责任添加到对象上,而不改变对象原先的使用,虽然继承也可以给对象添加责任,但是如果需要在运行期间添加,这就需要使用装饰者模式了;

4.工厂模式:把生成对象的责任移到工厂类上,如果修改对象的生产,可直接调整工厂类,而不用对使用方进行修改,这里就应用了【封装变化】原则;

简单工厂:对象的创建出现在多个地方,后续可能产生变化, 所以将责任添加到工厂类上,如果有变化就只调整工厂类即可;

工厂方法:定义一个创建对象的接口,由子类决定如何进行实例化,把创建的变化推迟到子类处理;

抽象工厂:和简单工厂类似, 唯一的区别就是抽象工厂创建的是一族产品,而简单工厂创建的是一个产品;

5.单例模式:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,985评论 1 15
  • 设计模式基本原则 开放-封闭原则(OCP),是说软件实体(类、模块、函数等等)应该可以拓展,但是不可修改。开-闭原...
    西山薄凉阅读 3,897评论 3 14
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,687评论 25 708
  • 一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者...
    RamboLI阅读 774评论 0 1