设计模式的六大原则

本文介绍了设计模式中的六大基本原则,包括单一职责原则、开放-封闭原则、依赖倒转原则、里氏代换原则、迪米特法则及接口隔离原则。详细阐述了每个原则的概念及其在软件设计中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式的原则

一、单一职责原则(SRP)

概念:就一个类而言,应该仅有一个引起它变化的原因。

二、开放-封闭原则(OCP)

概念:是说软件实体(类、模块、函数等等)应该可以扩展,但是不能修改。

特性:对于扩展时开放的,对于更改是封闭的。

面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。

三、依赖倒转原则

概念:

(1)高层模块不应该依赖底层模块,两个都应该依赖抽象;

(2)抽象不应该依赖细节,细节应该依赖抽象(通俗得讲就是:针对接口编程,不要对实现编程)
在面向过程开发时,为了使得常用代码的复用,一般都会把这些代码写成许多函数的程序库,这样在做新项目时候去调用这些底层的函数就可以了。比如需要访问数据库,就把访问数据库的代码写成函数,每次写新项目的时候就可以去调用这些函数,这就是高层模块依赖低层模块。这样是存在问题的:当在做新项目时发现业务逻辑的高层模块 都是一样的,但是客户希望用不同的数据库或存储信息方式,这时想再次利用高层模块,可是高层模块与低层模块绑在一起,没办法复用。
如果不管高层还是低层模块都依赖抽象(接口或抽象类),只要接口是稳定的,那么如何一个的更改都不用担心其他受到影响。

为什么依赖了抽象的接口或抽象类就不怕修改?看里氏代换原则。

如果程序中的所有依赖关系都是终止于抽象类或接口,那就是面向对象的设计;反之那就是面向过程的设计。

四、里氏代换原则(LSP)

概念:子类型必须能够替换掉它们的父类型。一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。

有了这个原则,使得继承复用成为可能。只有当子类可以替换掉父类,软件单位的功能不受影响时候,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

五、迪米特法则(LoD)也叫最少知识原则

概念:如果两个类不必彼此直接通信,那么这两个类就应当发生直接的相互作用。如果其中一个类需要调用另一个类的某个方法的话,可以通过第三者转发这个调用。

迪米特法则首相强调的前提是在类的结构设计上,每一个类都应当尽量降低成员的访问权限,也就是说,一个类包装好自己的private状态,不需要让别的类知道的字段或行为就不要公开。

迪米特法则其根本思想就是强调了类之间的松耦合。

六、接口隔离原则

概念:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值