设计模式

发布时间 2023-07-10 13:52:32作者: 张家豪

设计模式

七大原则

开闭原则

一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭。

单一职责原则

一个类应该只有一个发生变化的原因。

里氏替换原则

所有引用基类的地方必须能透明地使用其子类的对象。

依赖倒置原则

1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。
2、抽象不应该依赖于细节,细节应该依赖于抽象。

接口隔离原则

1、客户端不应该依赖它不需要的接口。
2、类间的依赖关系应该建立在最小的接口上。

迪米特法则

只与你的直接朋友交谈,不跟“陌生人”说话。

组合/聚合复用原则

尽量使用对象组合/聚合,而不是继承关系达到软件复用的目的。

创建型

单例模式

饿汉式

全局只会存在该类的唯一一个对象。在加载类的时候就已经开始初始化,而非等到使用的时候才进行初始化,此种方式线程安全,但可能存在资源浪费,即不会使用其对象还是会创建该对象。

静态常量的方式枚举的方式

懒汉式

只有在使用的时候才会进行创建该对象,但是由于可能存在多线程调用问题,所以需要注意线程安全问题。

1.synchronized锁住创建方法
2.双重校验锁(DCL,即 double-checked locking)
3.静态内部类的方式

工厂模式

通过工厂类能够进行生成所需对象,而非手动创建。一般会让工厂构造方法为私有,防止创建工厂的对象。只需调用工厂的某方法就可生成对应的对象。

抽象工厂模式

工厂模式的进阶用法,通过抽象工厂进行生成工厂。

建造者模式

把对象的组合构造或者某些属性设置进行封装,使之在创建对象的时候直接满足某些场景的数据,而非全由用户手动设置,防止构建出不符合的对象。

原型模式

根据某些已经存在的对象而无需再次手动创建此对象和赋值操作。

结构型

适配器模式

桥梁模式

装饰器模式

门面模式

合成模式

享元模式

代理模式

行为型