面试对象设计原则(中)

上期我们讲到开闭原则和里氏替换原则面试对象设计原则(上),这期我们紧接着讲面试对象设计原则中的依赖倒置原则、单一职责原则和合成复用原则。

依赖倒置原则

解析定义: Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin)于 1996 年在C++ Report上发表的文章。核心思想:面向接口编程,不要面向实现编程

重要作用:

● 降低类间的耦合性

● 提高系统的稳定性

● 减少并行开发引起的风险

● 提高代码的可读性和可维护行

实现方法:

每个类尽量提供接口抽象类,或者两者都具备

变量的声明类型尽量是接口或者抽象类

任何类不应该从具体类派生

依赖倒置案例:

缺点代码

修正代码


单一职责原则

解析定义:由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的.单一职责原则规定一个类应该有且仅有一个引起它变化的原因.否则类应该被拆分.

如果承担了太多的职责,至少存在以下两个缺点:

1. 削弱或者抑制其他职责的

2. 客户只要一个职责的功能,其他的功能不需要,如果不是单一的职责,那么需要购买全部功能

重要作用:

降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多

提高类的可读,可维护性,变更引起的风险降低.

核心本质:

对类的解耦,方法的解耦.可以理解为穿上衣和裤子.和连体衣服的区别.去个厕所,后续请自行脑补

合成复用原则

解析定义:合成复用原则又叫组合/聚合复用原则。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。

通常类的复用分为继承复用和合成复用两种,继承复用虽然有简单和易实现的优点,但它也存在以下缺点。

1.继承复用破坏了类的封装性。因为继承会将父类的实现细节暴露给子类,父类对子类是透明的,所以这种复用又称为“白箱”复用。

2.子类与父类的耦合度高。父类的实现的任何改变都会导致子类的实现发生变化,这不利于类的扩展与维护。

3.它限制了复用的灵活性。从父类继承而来的实现是静态的,在编译时已经定义,所以在运行时不可能发生变化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值