面向对象七大设计原则

面向对象七大设计原则

面向对象原则综述
在这里插入图片描述
一、单一职责

  • 我们在设计过程中,经常会面临一个方法里面有很多个不同的方法组成,书写代码时会使代码显得很冗长,因此我们可以将不同的每个方法抽离出来,单独形成一个类,然后通过聚合的方法,在基础方法上添加这个类属性。根据不同的业务,聚合不同的方法,而每个方法又可以单独拿出来使用,并且其只受一个原因使其变化。

二、开闭原则
在这里插入图片描述

  • 一个实体方法的变化,不应该通过改变代码的方式,而是在不改变自己的情况下,根据业务需要,额外扩展其他的方法,最好的方式就是将几个不同方法抽象出来,这样便于功能的扩展。

三、聚合/组合复用原则

  • 在实现功能时,多用组合,少用继承。因为当我们实现一个方法时,如果想增加一个方法,改变父类就会影响所有的子类,破坏了子类的封装。所以为了体现封装的特性,通过聚合多个属性来增加扩展,而不是改变继承的父类。

四、迪米特法则

  • 一个类与另一个类的交互,应该做到最少的接触,不让另一个类知道和操作自己所属的类成员,应该降低自己成员的访问权限。但可能会造成大量的小方法。

五、依赖倒置原则
在这里插入图片描述
在这里插入图片描述

  • 高层次的不应该依赖于低层次的模块,他们应该依赖于抽象,否则底层的任何修改都会影响到上层。
  • 抽象不依赖于具体实现,具体实现应该依赖于抽象
  • 要针对接口编程,不要针对实现编程

六、里氏替换原则

  • 任何父类出现的地方,都可以用子类替换。
  • 里氏替换是对开闭原则的一个补充,父类方法的改变会影响所有子类,而不一定所有子类都适用,则应该断开父类的继承

七、接口隔离原则

  • 一个类不应该继承他不需要的接口,且继承的应该是最小的接口。
  • 不应该让开发者接触到他不使用的方法

在这里插入图片描述
对ClientA 来说, operationB、operationC 都是不需要的。利用接口隔离原则,将大的接口进行拆分:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值