OOD常用的软件设计原则

原则是指基本事实或主张,是信仰体系,行为准则或推理的基础。

提起面向对象设计(OOD)的设计原则,大家立刻就能想到最基本的5大设计原则。我们首先看一下最基本的5大设计原则。

1)单一职责原则

类的每个关注点都是一个变化轴。一个类最好只有一个关注点,只有一个能导致它发生变化的原因。

2)开闭原则(OCP)

类的设计应该对扩展开放,对修改封闭。对于新的需求,能够在不影响其他代码的情况下进行扩展;只有在修改bug的情况下对原有代码进行修改。(我的理解是:在对原有代码进行修改的时候,不能对其他代码造成影响。)开闭原则的核心思想就是要针对接口编程,而不是针对具体类编程。

3)依赖倒转原则(DIP)

人正常的思维过程是从具体的对象中提取出抽象,也就是说抽象是依赖于具体对象的。这个原则的核心就是要倒转这个依赖关系,使具体要依赖于抽象。高层模块不应该依赖于底层模块,两者要同时依赖于抽象。

4)接口隔离原则(ISP)

接口应该是内聚的,不要创建一个大而全的接口,而是要使用多个小而专的接口。不能强迫客户依赖他使用不到的方法。

5)里氏代换原则(LSP)

必须能够通过父类接口使用子类,而客户并不知道这种差别。代码中所有使用父类的地方,都可以用子类代替。子类型至少提供父类型承诺的行为。

在5大设计原则之外,还有一个重要的设计原则——迪米特法则。迪米特法则也被人们称为第6大设计原则。

6)迪米特法则

又被称作最少知道原则。一个对象应该对被依赖的对象保持最少的了解,只和直接朋友进行通信。

除了上面的6大设计原则之外,我们在面向对象的设计过程中,也会自觉或不自觉的用到下面的这些设计原则。

7)抽象原则

通过精简和概括来简化实体。精简指删除不必要的部分,概括指找出并定义重要的通用特性。

8)封装原则

封装原则提倡一种信息隐藏方式,通过隐藏抽象的实现细节和隐藏可能发生的变化两种形式,来实现关注点分离和信息隐藏。封装原则又可以划分为信息隐藏原则和变化封装原则。

9)模块化原则

倡导通过集中(数据和操作集中在一个对象中)和分解(将大的抽象分解成规模适中的抽象)等方法创建高内聚和低耦合的抽象。

10)层次结构原则

倡导通过使用分类,归并(抽出子类中的共性),替换(遵循LSP原则),排序等手法以层次方式组织抽象。

11)非循环依赖原则(ADP)

该原则指出,包之间的依赖关系不能存在循环。同样,类之间的依赖也不能存在循环。

12)不自我复制原则(DRY)

该原则指出,对于每一个知识点,系统中只能有一个明确而权威的表示。在面向对象的设计中,重复可能表现为类名重复和代码实现重复。

13)保持简单原则(KISS)

简洁是软件设计的重要目标,避免引入不必要的复杂。保持软件设计简单的方式有两种:一种是让它简单到没有缺陷,另外一种是复杂到没有显而易见的缺陷。

14) 合成聚合原则(CAPP)

对象之间如果存在依赖关系的话,尽量使用合成/聚合,而不要使用继承来表达这种依赖关系。因为使用继承会导致对象之间的强耦合。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值