zoukankan      html  css  js  c++  java
  • 面向对象的六大原则

    正巧赶上当当200减100,就买了本《Android源码设计模式》

    1,优化代码的第一步——单一职责原则SRP(Single Responsibility Principle)SRP

      使代码尽可能减少耦合,增加可扩展性与灵活性。

    个人理解就是:任务分工明确,每个类都有明确的方法,不要混淆在一起

    2,使程序更稳定、更灵活——开闭原则OCP(Open Close Principle)

          ————Java世界中最最基础的设计原则

        软件中的对象(类、模块、函数)应该对扩展是开放的,而对于开放是封闭的,这就是开放—关闭原则。

          我个人的理解就是:程序一旦开发完成后,尽量不要对与原函数进行修改,如果要修改,可以通过继承这个class,通过重写来修改。而原来的类,也就变成了接口。

      而在现实编码过程中,通过修改旧代码还是继承修改,都要视情况而定,不可迂腐。

    3,构建扩展性更好的系统——里氏替换原则LSP()

            面向对象的语言有三大特点:继承,封装,多态。

       定义:简单来说就是,所有引用基类的地方必须能透明地使用其子类的对象。

        也就是说,只要父类出现的地方,子类就可以出现,反之不成立。(抽象)

       核心原理是抽象,而抽象又依赖于继承。

    4,让项目拥有变化的能力——依赖倒置原则DIP(Dependent Inversion Principle)

      这个原则代指了一种特定的解耦形式,使得高层次的模块不依赖于低层次的模块的实现细节的目的,以来模块被颠倒了。

      关键点:(1)高层模块不应该依赖于底层模块,二者都应该以来其抽象;

          (2)抽象不应该依赖于细节;

          (3)细节应该依赖于抽象。

      在Java语言中,抽象就是指接口或者抽象类,二者都是不能直接被实例化的;细节就是实现类,实现接口或者继承抽象类而产生的类就是细节。其特点就是,可以直接被实例化,也就是可以添加一个关键则new来创建一个对象。

      模块之间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类实现。——面向接口编程,这里的抽象指的就是抽象。

      

    5,使系统有更高的灵活性——接口隔离原则 ISP(InterfaceSegregation Principle)

      定义一:客户端不应该依赖它不需要的接口。

      定义二:类之间的依赖关系应该建立在最小的接口上。

        说白了就是,让客户端以来的接口尽可能的小。

    6,更好的可扩展性——迪米特原则LOD(Law of Demeter)

        也称为最少知识原则。

        一个类应该对自己需要耦合或者调用的类知道的最少,类的内部实现与调用者或者依赖着没有关系,调用者或者依赖者只需要知道它需要的方法即可,其他的一概不管。

    总结:在应用开发中,最难的不是完成应用的开发工作,而是在后续的升级、维护过程中让应用拥抱变化。

        所谓拥抱变化:在满足需求且不破坏系统稳定性的前提之下,保持高可扩展性、高内聚、低耦合,经历系统版本变化后让能保持清晰,灵活,稳定的系统结构。当然,这只       是一中理想状态,但是我们必须朝着这个方向努力,遵循面向对象六大原则是走向灵活软件之路所迈出的第一步。

  • 相关阅读:
    《.NET深入体验与实战精要》读书体会
    为什么周易中有64卦?
    16进制与8进制之间的快速转码
    3种夸克有多少组合?
    分辨率宽高和为整千?
    abt DVD
    为什么有20种氨基酸?
    HD与BD次时代之战!
    [转载]Java一些基础问题
    [转载]Java环境变量配置
  • 原文地址:https://www.cnblogs.com/icyhusky/p/6033381.html
Copyright © 2011-2022 走看看