面向对象设计七原则

1. 开闭原则

对扩展开发,对修改关闭。通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类,以实现开闭原则。

  • 提高可测试性。
  • 提高可维护性。
  • 提高可复用性。

2. 里氏替换原则

继承必须确保超类所拥有的性质在子类中仍然成立。对开闭原则的补充,通俗点讲,子类可以扩展父类的功能,但不能改变父类原来的功能,也就是尽量不要重写父类的方法。

  • 实现开闭原则的重要方式之一。
  • 克服继承复用性变差的缺点。
  • 降低出错的概率,降低新扩展导致系统出错的概率。

3. 依赖倒置原则

高层模块不应该依赖于低层模块,两者都应该依赖于抽象;抽象不应该依赖细节,细节应该依赖抽象。主要的核心思想是面向接口编程,而不是实现编程。

  • 降低耦合。
  • 提高稳定性。
  • 增强可读性。
  • 增强可维护性。

4. 单一职责原则

规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。这是很简单的一个原则,但是又是非常难保证的原则,因为往往都做不到一个类只负责一个功能。

  • 增加内聚。
  • 降低复杂度。
  • 提高可维护性。
  • 增强可读性。
  • 减少修改的风险。

5. 接口隔离原则

尽量将大的、臃肿的接口拆分成更小、更具体的接口。约束接口,降低类对接口的依赖程度。

  • 增加灵活性。
  • 增加可维护性。
  • 增加内聚。

6. 迪米特法则

如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。

  • 降低耦合。
  • 提高复用性。
  • 提高可扩展性。

7. 合成复用原则

在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现 。如果要使用继承关系,则必须严格遵循里氏代换原则。

  • 维持封装性。
  • 降低耦合度。
  • 提高灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值