6大设计原则及23种设计模式

六大设计原则

在这里插入图片描述

一、开闭原则

1、定义:
Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification
软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。

用抽象构建框架,用实现扩展细节。
2、优点:
提高软件系统的可重复用性及维护性。
3、理解:
对软件实体的改动,最好用扩展而非修改的方式

二、依赖倒置原则

1、定义:
High-level modules should not depend on low-level modules. Both should depend on abstractions.
高层模块不应该抵赖底层模块,两者应该依赖抽象
Abstractions should not depend on details. Details should depend on abstractions.
抽象不应该依赖细节,细节应该依赖抽象
2、优点:
针对接口编程,不要针对实现编程
3、理解:
面向接口编程,提取出事务的本质和共性。

三、单一职责原则

1、定义:
There should never be more than one reason for a class to change.
不要存在多于一个导致类变更的原因
即一个类/接口/方法只负责一项职责
2、优点:
降低类的复杂度、提高类的可读性,提高系统的可维护性
3、理解:
一个类只承担一个职责

四、接口隔离原则

1、定义:
Clients should notbe forced to depend upon interfaces that they don’t use.
客户端只依赖于它所需要的接口;它需要什么接口就提供什么接口,把不需要的接口剔除掉。
The dependency of one class to another one should depend on the smallest possible interface.
类间的依赖关系应建立在最小的接口上
建立单一接口,不要建立庞大臃肿的接口
尽量细化接口,接口中的方法尽量少
注意适度原则,一定要适度
2、优点:
符合我们常说的高内聚第耦合的设计思想,从而使得类具有很好的可读性、可扩展性和可维护性
3、理解:
不要对外暴露没有实际意义的接口

五、迪米特法则(最少知道原则)

1、定义:
Only talk to your immediate friends
只与直接朋友通信
即一个对象应该对其他对象保持最少的了解。又叫最少知道原则
尽量降低类与类之间的耦合
2、优点:
降低类之间的耦合、强调只和朋友(出现在成员变量、方法的输入、输出参数中的类成为朋友类,而出现在方法体内部的类不属于朋友类)交流,不和陌生人说话
3、理解:
一定要做到:低耦合、高内聚

六、里氏替换原则

1、定义:
Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
所有引用基类的地方必须能透明地使用其子类的对象。
2、优点:
代码重用,减少创建类的成本,每个子类都拥有父类的方法和属性
子类与父类基本相似,但又与父类有所区别
提高代码的可扩展性
3、理解:
只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。

二十三种设计模式

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值