num03 开发法则

1.1.1、什么是开发原则?


  开发原则就是开发的依据,只要依照这些原则进行开发,将来开发的软件具有很强的扩展力,很低的耦合度。
  开发原则不属于java语言,也不属于任何一个编程语言,开发原则属于软件工程学的内容。

1.1.2、常见的开发原则?【  七大原则  】 

  目的:实现高内聚,低耦合,提高可靠性、可读性【规范】,可扩展,可重用。

  


  1- 开闭【 OCP 】原则:所有开发原则中有一个最基本的原则,该原则叫做:OCP【开闭原则】,其它所有的原则都是围绕OCP开展的。

      对修改关闭,对扩展开放
     * 连接数据库的信息编写到配置文件当中,不要编写到java源程序当中,这就是符合OCP开发原则的。
     * 开闭原则指的是:对扩展开放,对修改关闭。
     * 开闭原则的本质是:在扩展软件功能的时候,不修改源程序达到轻松扩展。
  2- 接口隔离原则

     一个类对另一个类的依赖应该建立在最小接口上,不依赖它不需要的接口。
     * 一个接口尽可能的定义的专业一些,这个接口只为用户服务,例如:UserService,这个接口只为系统服务,例如SystemService
     * 尽可能接口定义的精细一些,以下接口定义的比较宽泛,不够专业,当Person实现这个接口的时候会强制Person实现不应该实现的方法,导致角色污染。


    CommonInterface{
      void eat();
      void sing();
      void dance();
      void study();
      void paxing();
      ....
      ....
    }
    Person implements CommonInterface{
      //角色污染
    }


  3- 合成聚合复用原则
    * 尽量使用has a 代替 is a 【代替继承】
    * 代码要想复用可以使用继承方式,但继承不是一种很好的解决方案,因为继承之后两个类之间的关系比较紧密,其中一个类发生改变的时候,另一个类会受到影 响。耦合度高
    * 代码要想复用还有另一种方式,就是A对象中含有B对象的引用,这样在A类中可以直接使用B类中的相关方法,这也是达到代码复用,这种方式A类发生改变B类不受影响,耦合度低。


  4- 迪米特法则:(最少知道原则)

    思想上: 每一个类都应该尽量降低成员的访问权限,强调了类之间的松耦合。 不要和陌生人说话,每个类尽量减少对其他类的依赖,降低耦合度,

  因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。

   


  5- 依赖倒转原则:

    核心思想:针对接口编程,而不是针对具体实现 去 编程。高层模块不应该依赖低层模块,两者都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象。

    * 面向抽象编程,面向接口编程,不要面向具体编程。
    * 依赖关系倒转过来
      class A{
        //假设B类是一个具体的类,就违背了依赖倒转原则。
        //因为当B类这个具体的类发生改变之后,A类会受到牵连。
        //假设A是上,B是下。此时实际上是“上”依赖“下”
        B b; 
      }

      class A{
        //假设B是一个接口,不是具体的类,这就符合了依赖倒转原则。
        //依赖关系扭转过来了,此时“上”不再依赖“下”,也就是说A不依赖:B1、B2、B3等实现类。
        //A面向抽象的B接口。
        B b;
      }

      class B1 implements B{
      }
      class B2 implements B{
      }
      class B3 implements B{
      }


  6- 里氏代换原则:   

    【

      ps:继承:会给程序带来侵入性,降低可移植性,增加对象间的耦合性。

    】 

    

    即,原来的父类和子类都继承一个更加通俗的基类,去掉原有的继承关系,采用依赖、聚合、组合等关系代替。  

    使得开放封闭成为可能,子类型的可替换性使得父类模块在不改变的前提下进行扩展子类型必须能够 替换掉他们的父类。

    尽可能使用多态语法机制,父类型引用指向子类型对象。
    编译阶段绑定父类中的方法,运行阶段动态调用到子类对象中的方法。

  7- 单一职责原则

    就一个类而言,应该只有一个职责。一个类不要承担太多的职责,不然的话等于把这些职责进行耦合在一起了,一旦部分职责发生变化,

  就会影响其他。职责应该分离开来。


总结:

    以上所有的开发原则都是为了达到一个共同的目标:高内聚、低耦合。达到高内聚低耦合的好处是,可重用性增强,可扩展性增强。 
    高内聚表示:专业,只做一件事。只有达到高内聚,才可以达到低耦合,高内聚和低耦合是相辅相成的。

发布了104 篇原创文章 · 获赞 1 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/xiaoanzi123/article/details/104390218
num