设计模式规范

本文详细介绍了软件设计中的六大原则,包括单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则以及开闭原则。此外,还探讨了23种设计模式,如单例模式、工厂方法模式、抽象工厂模式等,阐述了它们的定义、特点、应用场景及优缺点,帮助读者深入理解设计模式在实际开发中的应用和价值。
摘要由CSDN通过智能技术生成

一、6大设计原则:

1.1 单一职责原则:

单一职责原则 (Single Responsibility Principle) SRP的定义: 应该有且仅有一个原因引起类的变更

单一职责原则适用于接口、类,同样适用于方法,一个方法尽可能只做一件事情,但是该原则最难划分的就是职责。一般建议来看,接口的设计一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。

1.2 里氏替换原则:

(Liskov Substitution Principle) LSP

4层含义:

1. 子类必须完全实现父类的方法
2. 子类可以有自己的个性
3. 覆盖或者实现父类的方法时输入参数可以被**放大**
4. 覆写或者实现父类的方法时输出结果可以被**缩小**

1.3 依赖倒置原则:

(Dependence Inversion Principle) DIP

3层含义:

1. 高层模块不应该依赖底层模块,两者都应该依赖其抽象
2. 抽象不应该依赖细节
3. 细节应该依赖抽象

在java语言中,抽象就是指接口或者抽象类,两者时不能直接被实例化的。细节就是实现类,实现接口或者抽象类而产生的类就是细节。

依赖倒置原则在java中就是: 面向接口编程(OOD)

1. 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的
2. 接口或者抽象类不依赖于实现类
3. 实现类依赖接口或抽象类

采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。

1.4 接口隔离原则:

建立单一的接口,不要建立臃肿庞大的接口。换句话说,就是接口尽量细化,同时接口中的方法尽量少

接口隔离原则单一职责区别在于两者的角度是不同的,单一职责是从业务逻辑划分的角度去看待,要求类和接口的职责要单一。而接口隔离原则是要求接口的方法尽量少,尽量提供专用的接口,有几个模块就有几个接口。

1.5 迪米特法则:

(Law of Demeter,) LoD

只与直接的朋友通信。朋友类的定义为:出现在成员变量、方法的输入输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。

1.6 开闭原则:

二、23种设计模式:

2.1 *单例模式:

定义:某一个类只有一个实例,而且自行实例化并向整个系统提供该实例。

特点:

1. 单例类只能有一个实例
2. 单例类必须自己创建自己的实例类

应用:单例模式保证了全局对象的唯一性,比如系统启动读取配置文件就需要单例保证配置的一致性。spring中对bean的管理默认都是单例模式,需要注意多线程使用的问题,避免对非静态变量使用不当导致数据不一致的情况发生,比如java中的日期类。

注意:多线程使用的时候,注意实例变量是否会因为多线程而产生状态不一致问题。

实现: 饿汉式、懒汉式、枚举类

2.2 *工厂方法模式:

定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

优点:

1. 良好的封装性,代码结构清晰,降低模块间的耦合性。
2. 可扩展性好,在增加新的产品类时,只需要添加新的子类,不用改动工厂类。
3. 高层模块只依赖产品的抽象,符合迪米特法则
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值