面向对象设计原则

Posted wqk66

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象设计原则相关的知识,希望对你有一定的参考价值。

目录

  • 单一职责原则
  • 开闭原则
  • 里氏替换原则
  • 依赖倒转原则
  • 接口隔离原则
  • 合成复用原则
  • 迪米特法则

 

单一指责原则:

  最简单的面向对象设计原则,简单说就是类、对象或者方法尽量承担单一职责,比如在数据库连接类中,只承担数据库连接的职责,在数据库操作类中只承担数据库操作的职责等

这样,有利于实现代码的复用。

开闭原则:

  对类或对象来说,对扩展开放,对修改关闭;

里氏替换原则:

  所有引用基类的地方必须能透明的使用其子类,即基类对象可以用子类对象替换,而子类对象不一定能用基类对象替换,比如,我喜欢吃肉,但我一定喜欢吃猪肉,因为猪肉是肉的子类;反之,我喜欢吃猪肉,但不能表明我喜欢吃肉,因为我并喜欢吃羊肉,虽然它也是肉。

依赖倒转原则:

  抽象不应该依赖于细节,细节应该依赖于抽象;也就是说,要针对接口编程,不要针对实现编程。在编程过程中,尽量引用高层次的抽象层类,使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明等,然后通过依赖注入的方式将具体类注入到其他对象中,依赖注入有三种类型:构造函数注入,set方法注入,接口注入,其中构造函数注入是指通过构造函数传入具体类的对象,set方法注入是指通过setter方法传入具体类,接口注入是指通过在接口声明的业务方法传入具体对象

接口隔离原则:

  在编写接口的过程中,接口不宜过大过重,即不要把所有功能的实现都放到一个接口中,这样会导致某个类实现该接口的时候,要实现不必要的方法,影响代码质量;我们可以把职责过大的接口拆分为若干小接口,根据单一职责原则,一个功能类实现一个小接口。

合成复用原则:

  尽量使用对象组合,而不是继承来达到复用的目的;继承会破坏基类的封装性,导致基类的细节暴露给子类,因为基类的内部细节对子类来说是可见的;使用聚合来达到复用的目的,可以保证类之间的相对独立性,可以根据实际需要动态的调用成员对象的操作。

迪米特法则:

  也称最少知道原则,一个类或者模块应该尽可能少的与其他类或者模块发生相互作用;迪米特法则要求只和自己”亲近的人“发生相互作用,亲近的人包括:当前对象本身(this)、以参数形式传入到当前对象方法中的对象、当前对象的成员对象、如果当前对象的成员对象是集合,那么集合中的元素也是“亲近的人“、当前对象所创建的对象。

 

以上是关于面向对象设计原则的主要内容,如果未能解决你的问题,请参考以下文章

面向对象设计的6个设计原则最早谁提出的

面向对象设计的基本原则都有哪些

设计模式2 面向对象设计原则

面向对象七大设计原则

面向对象设计原则

设计模式:面向对象的设计原则下(ISP、DIP、KISS、DRY、LOD)