设计模式七大原则

设计模式目的:
1.具有更好的代码重用性
2.更好的可读性
3.更好的扩展性
4.可靠性(增加新的功能对原来的功能没有任何的影响)
5.使得程序高聚合低耦合
设计模式的七大原则
1.单一职责原则
2.接口隔离原则
3.依赖倒转原则
4.里氏替换原则
5.开闭原则
6.迪米特原则
7.合成复用原则

1.单一职责原则:
这个很好理解,就是一个类只负责一项职责
这里举个例子,比如我们对于
在这里插入图片描述
像这样的代码就违反了单一职责,这里的轮船是不能在公路运行的,所以我们设计类与类的时候就要保持单一职责模式,比如设计这个小案例,我们就可以有两种方法,第一种是我们保持类上的单一职责,第二种是我们保持方法上的单一职责.
在这里插入图片描述
这样子我们对于方法上就是职责单一(类中方法足够少,才能用)
在这里插入图片描述
这样子就是类上职责单一(推荐编程时使用这种思维)

2.接口隔离原则
一个类对另外一个类的依赖应该建立在其最小接口上
这个举个例子:
在这里插入图片描述
这种情况就是interface1对于A和C两个类来说不是最小的接口,我们的D类就要多实现2,3方法,B类多实现4,5方法所以我们改进的思路就是划分接口
在这里插入图片描述
实际就是B类实现接口1,2,D类实现接口1,3,我们的A是依赖于B类,就是在A的方法中通过传入接口类型的引用对象来进行调用方法.

3.依赖倒转原则
其实就是细节依赖于抽象,面向接口编程
这样在我们的项目中搭建的架构会更加稳定
这里依赖倒转分为三种 :
1.通过接口传递实现依赖
2.通过setter方法实现依赖
3.通过构造方法实现依赖
核心就是细节依赖于抽象,也就是我们传参的时候,尽量声明的类型用抽象类型和接口类型,这样我们的变量引用和实际对象间就有一个缓冲层,有利于程序的优化和扩展
举个例子,人收到(微信,qq等),我们这里可以创建一个Person类,还有一个IReciver接口,微信,qq都要实现这个IReciver接口,Person有个方法,比如
public void receive(IReciver ireciver)这就是接口传递依赖,
public Person(IReciver ireciver);这是构造传递依赖
public void setIReciver(IReciver ireciver)这就是setter方法传递依赖

4.里氏替换原则
在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常这就是里氏替换原则,所以我们可以尽量减少用继承,可以用组合聚合依赖的关系来实现,子类尽量不要重写父类的方法
比如不小心重写了父类的方法导致程序进行出错,我们可以把父类和子类让他们继承一个更加通俗的基类,原有的关系去掉,用聚合,组合,依赖关系实现

5.开闭原则
对扩展开放对修改关闭

6.迪米特法则
最少知道法则,一个类对自己依赖的类知道的越少越好,除了对外提供的public方法,不对外泄露任何的信息
这里有个更简单的定义:只与直接的朋友通信
直接的朋友就是出现在返回值,成员变量,方法参数的类
(尽量不要出现在局部变量)

7.合成复用原则
在我们程序设计中尽量多用组合聚合,少用继承

总结一下:就是我们在设计类的时候尽量少用继承多用组合和聚合,多考虑考虑其可扩展性和可维护性,多去思考类与类之间的解耦,做到程序的低耦合,高聚合

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值