面向对象六大原则

时间:2021-10-27 17:27:42

在这里我简述一下我对面向对象六大原则的理解:

单一职责原则:系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。

开闭原则:一个对象对扩展开放,对修改关闭。意思就是说对类的改动是通过增加代码进行的,而不是改动现有代码。通俗的说,开发人员一旦写出了可以运行的代码,就不应该去改变它,而是要保证他能一直运行下去。

里式转换原则:任何抽象类出现的地方都可以用它的实现类来代替。采用里氏转换原则可以更好的使用继承。

      关于里氏转换原则,我总结出了两点:

      1、子类对象可以隐式转换为父类对象。
      2、如果父类对象由子类的构造函数实例化出来,那么这个父类对象可以强制转换为该子类对象。
          强制转换会用到 is 和 as 这两个关键字,区别如下:
          is :如果转换成功,返回 true,失败返回 false;
          as:如果转换成功,返回对应的对象,失败返回 null。

依赖倒置原则:要依赖于抽象,不要依赖于具体的实现。在开发过程中,所有的类如果需求调用其它的类,就应该调用该类的接口或者抽象类,而不是直接调用该类的实现类。

接口隔离原则:不应该强迫客户端程序依赖它们不需要使用的方法。我的理解就是:不要让某个类继承了接口后,这个类拥有了一部分它不应该拥有的功能接口函数。也就是说我们在定义接口时,应该尽量使接口小巧明确,只具备一种对外功能,毕竟一个类可以继承

       多个接口,这并不影响我们写代码。

迪米特原则:一个对象应当对其他对象尽可能少的了解,从而能够降低各个对象之间的耦合,提高系统的可维护性。在程序设计中,各个模块之间互相调用时,通常都会提供一个统一的接口来实现,这样其他模块就不需要了解另一个模块的内部实现细节,这样当一个模块内部的实现发生改变时,不会影响其他模块的使用。