软件构造——关于面向对象设计原则

1.五大原则

我们在学习面向可维护性的构造技术时,学习了面向对象设计的五大原则,掌握这些原则能帮助我们更好的理解面向对象的概念,也能更好的理解设计模式。
在这里插入图片描述

2.SRP 单一责任原则

不应该有多于1个原因让你的ADT发生变化,否则就拆分开。

单一职责原则的优点:

  • 类的复杂性降低,实现什么职责都有明确的定义;
  • 逻辑变得简单,类的可读性提高了,而且,因为逻辑简单,代码的可维护性也提高了;
  • 变更的风险降低,因为只会在单一的类中的修改。在这里插入图片描述

3.OCP 开放-封闭原则

分为两部分。

  • 对扩展性的开放:模块的行为应是可扩展的,从而该模块可表现出新的行为以满足需求的变化。
  • 对修改的封闭:模块自身的代码是不应被修改的,扩展模块行为的一般途径是修改模块的内部实现,如果一个模块不能被修改,那么它通常被认为是具有固定的行为。在这里插入图片描述

4.LSP Liskov替换原则

子类型必须能够替换其基类型,派生类必须能够通过其基类的接口使用,客户端无需了解二者之间的差异。
简单概括:只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何异常。 但是反过来就不行了,因为子类可以扩展父类没有的功能,同时子类还不能改变父类原有的功能。
具体来说:

  1. 子类型可以增加方法,但不可删除。
  2. 子类型需要实现抽象类型中的所有未实现方法。
  3. 子类型中重写的方法必须有相同或子类型的返回值或者符合co-variance的参数。
  4. 子类型中重写的方法必须使用同样类型的参数或者符合contra-variance的参数。
  5. 子类型中重写的方法不能抛出额外的异常。

5.ISP 接口隔离原则

不能强迫客户端依赖于它们不需要的接口:只提供必需的接口。
意思就是客户端需要什么接口就提供什么接口,把不需要的接口剔除掉,这就需要对接口进行细化,保证接口的纯洁性。换成另一种说法就是,类间的依赖关系应该建立在最小的接口上,也就是建立单一的接口。
在这里插入图片描述

6.DIP 依赖转置原则

抽象的模块不应依赖于具体的模块,具体应依赖于抽象。
在Java语言中,抽象就是指接口或抽象类,两者都不能被实例化;而细节就是实现接口或继承抽象类产生的类,也就是可以被实例化的实现类。依赖倒置原则是指模块间的依赖是通过抽象来发生的,实现类之间不发生直接的依赖关系,其依赖关系是通过接口是来实现的,这就是俗称的面向接口编程。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值