面向对象七大基本原则

本文介绍了面向对象编程中的七大设计原则,包括单一职责、开闭原则、接口隔离、里氏替换、依赖倒置、迪米特法则以及合成聚合复用。这些原则强调了代码的可维护性和扩展性,提倡通过抽象和复用降低耦合度。
摘要由CSDN通过智能技术生成

一、单一职责

就一个类而言,应该仅仅只有一个使其变化的原因;

这强调了类设计需要讲究高内聚的性质,只完成它该做的事,不实现与它无关的;

二、开闭原则

对一个类来说,应该是对于扩展开放,对于修改关闭的;

这建立在类单一职责的基础上,并且依赖于抽象:1)一个系统如果没有抽象或者接口就没有扩展点;2)封装可变性,需要将多个可变因素封装到继承结构中,如果多个可变因素混乱在一起,就会使系统变得复杂;

三、接口隔离原则

一个接口的设计应该小而专,而非大而杂;

接口表示能力,那么一个接口最好只描述一种能力;

四、里氏替换原则

所有能够使用父类的地方都要能用子类替换;

换言之,子类的能力不能比父类小;

开闭和里氏往往是生世相依,不离不弃,通过里氏替换来达到程序的扩展,对修改的关闭效果。然而,这两个原则都同时强调了一个 OOP 的重要性 - 抽象,因此,在开发过程中,运用抽象是走向代码优化的重要一步。

五、依赖倒置原则

细节应该依赖于抽象, 抽象(具体来说可以是不能被实例化的接口或是抽象类)而不应该依赖于细节(具体来说可以是实现类);

也可以这样说:声明变量的引用类型,声明方法的引用类型和返回类型时,尽量使用抽象类型而不是具体类型,因为抽象类型可以被它的任意子类型所代替;

六、迪米特原则

一个类应该对自己需要耦合或调用的类知道的最少,类的内部如何实现与调用者或者依赖者没有关系,调用者或者依赖着只需要知道它需要的方法即可,其他的可一概不用管。类与类之间关系密切,耦合度就越大,当一个类发生改变时,对另一个类的影响也越大。

七、合成聚合复用

优先使用聚合或者合成关系复用代码

因为如果使用继承实现复用,一旦只需要使用父类的一部分代码,而不得不将父类其他的代码一并复用,反而会造成严重的代码冗余,并且进一步暴露了父类的内部细节;

而使用聚合/组合,在实现目的的同时,会带来更小的副作用。

参考资料:

通过代码示例来学习面向对象六大原则_面向对象的六大原则示例代码-CSDN博客

面向对象基础设计原则:5.组合/聚合复用原则 - 知乎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值