《设计模式之禅》笔记

一、23种设计模式

《设计模式之禅》笔记_第1张图片
1
《设计模式之禅》笔记_第2张图片
2
《设计模式之禅》笔记_第3张图片
3
《设计模式之禅》笔记_第4张图片
4

二、六大设计原则

1、单一职责原则

2、里氏替换原则

定义:所有使用基类的地方必须能透明地使用其子类对象。
1、子类必须完全实现父类的方法
2、子类可以有自己的个性
3、覆盖(Overload)或实现父类方法时输入参数可以被放大
4、覆写(Override)或实现父类方法时输出参数可以被缩小

3、依赖倒置原则

本质是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合

4、接口隔离原则

5、迪米特法则

一个对象应该对其他对象有最少的了解

6、开闭原则

对扩展开发,对修改关闭

三、设计模式Tips

3.1创造类

单例模式

几种创建方式:

  • 饿汉式(非延时加载)
  • 懒汉式(延时加载,双重锁实现线程安全)
  • 静态内部类
  • 枚举类

工厂模式

  • 简单工厂
    又叫静态工厂
  • 抽象工厂
    有N个产品族,抽象工厂类就有N个创建方法;有M个产品等级就有M个实现工厂类。
    注意:横向扩展容易,纵向扩展难

建造者模式

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。关注的是零件类型和装配顺序。

最佳实现:和模版方法模式一起使用

原型模式

不通过new来产生一个对象,而是通过对象复制来实现。适合类的初始化过程比较繁琐的场景,通常和工厂模式一起使用。

  • 浅拷贝:Object类提供的方法clone只是拷贝本对象,其对象内部的数组、引用对象等都不拷贝,还是指向原生对象的内部元素地址。
  • 深拷贝:手动实现拷贝、或通过二进制流来操作对象

3.2 行为类

模版方法模式

中介者模式

蜘蛛网状类图 -> 星型类图

命令模式

责任链模式

策略模式

迭代器模式

观察者模式

备忘录模式

访问者模式

状态模式

解释器模式

3.3 结构类

代理模式

装饰模式

适配器模式

组合模式

门面模式

享元模式

桥梁模式

3.4 几种新模式

规格模式

对象池模式

雇工模式

黑板模式

空对象模式

四、案例

你可能感兴趣的:(《设计模式之禅》笔记)