美文网首页
初步简单理解面向对象的六大原则

初步简单理解面向对象的六大原则

作者: OnPush | 来源:发表于2017-05-10 23:27 被阅读0次

    在这里自说自话一波,六大原则之间总感觉有重合的地方。

    单一职责原则

    就是一个类要看着他的文档规范或者名字开发,他叫桌子就不能把椅子的东西写进去,就是要做同类型符合这个类名字的事情。具体可以看看斯坦福的软件工程课程 点这里

    准确解释是,就一个类而言,应该仅有一个引起它变化的原因。

    里氏替换原则

    任何父类出现的地方都可以用子类代替。

    网上大多数的解释是四条,

    1.子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。

    2.子类中可以增加自己特有的方法。

    3.当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。

    4.当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父

    但就我目前的水平,我的理解还是,只要你注意这个类或者方法是怎么描述的,如果描述足够准确,在描述范围内写就好了。比如,父类文档要求你返回一个object,那么子类可以是String,Long什么的,但是要求你返回String,你就不能返回object。

    依赖导致原则:

    个人觉得这句话应该记住。

    高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

    用接口减弱代码之间的耦合性。利用好java的特性。

    多用抽象的接口来描述相同的动作,降低实现这个动作的人和物之间的耦合度

    总的来说就是面向接口编程。

    接口隔离原则:

    也就是接口最小原则,一个接口里面方法要简单。其实和单一职责原则挺像的。

    接口尽量要细分,不同功能的方法不要写在一个接口里面。

    迪米特法则:

    对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。

    开闭原则

    写完了代码,要保证的是你的代码能扩展,但是尽量不要修改。

    感觉这六大原则之间是互相补充,互相依赖。总有说不清道不明的关系在里面。开发的过程中一定要好好体会着六大原则,背熟是没有意义的,要把他们融入到你的代码风格中去。背熟是会编码的一个必要条件。要我面试,我肯定先问这个,这个都不熟悉,说明对代码的理解还是有欠缺的。

    相关文章

      网友评论

          本文标题:初步简单理解面向对象的六大原则

          本文链接:https://www.haomeiwen.com/subject/wjdktxtx.html