【软件设计基础】关于编写面向对象代码时需要遵守的七大原则

系列文章目录

前言

为来编写的代码规范,且提高代码的维护性而需要蹲守的七大原则。

一、单一职责

  在代码里,所有的类,对象,接口都只能有一种职责(功能),从而减少该类(对象,接口)被修改的动机。特别是测试完的代码最好都不要动,否则bug自负。

二、开闭原则

  对原有的代码只能扩展,不能修改。还是那句话,特别是测试完的代码最好都不要动,否则bug自负。

三、接口隔离

  任何接口都只能有一个方法,算是对单一职责的一次补充。

四、里氏替换

  派生类只能对基类原有的功能进行扩充,不能进行修改。算是对开闭原则的一次补充。

五、迪米特法则

  比如有一个A类和一个B类,A类和B类相互知道对方的细节越少越好(耦合性必须低)

六、依赖倒置

  比如有一个Course类和一个Student类,这里模拟一下Student调用Course类的前景。

class Course{
    
    
       //学习java课程
       public void javaCourse(){
    
    
              //todo
       }
       //学习c sharp课程
       public void csharpCourse(){
    
    
               //todo
       }
}

  而Student类对其调用就需要这样的写法

class Student{
    
    
       //学习
       public void study(){
    
    
              Course course = new Course ();
              course.javaCourse();
              course.csharpCourse();
       } 
}

  这是你要新加一个Js的教材,你会发现要去同时修改Student类和Course类,这样就很麻烦。这时我们可以引用一个ICourse接口,然后让Student类每次都去通过ICourse接口调用课程学习且是新增加一个类必须对原来的类进行修改。写法如下:

扫描二维码关注公众号,回复: 14884320 查看本文章
interface ICourse{
    
    
       void learnCourse();
}

class JavaCourse : ICourse{
    
    
     void learnCourse(){
    
    
           //todo
     }
}

class CSharpCourse : ICourse{
    
    
     void learnCourse(){
    
    
           //todo
     }
}

class Student{
    
    
      //学习
      public void study(){
    
    
             //想写java就new java,代码扩展性和阅读性都提高了,还有就可恨的耦合性
             ICourse javaCourse = new JavaCourse ();
             javaCourse。learnCourse();
      } 
}

七、合成复用

在设计代码的时候,能用组合关系的尽量用组合关系而不使用继承关系。

猜你喜欢

转载自blog.csdn.net/qq_41094072/article/details/126984115