zoukankan      html  css  js  c++  java
  • 软件原则

    开闭原则:软件实体应当对扩展开放,对修改关闭===【当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。】

    实现方法: 

         可以通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。

         因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来的实现类来进行扩展,当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。

    里氏替换原则:【继承必须确保超类所拥有的性质在子类中仍然成立】

    实现方法:

    子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。

    • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
    • 子类中可以增加自己特有的方法
    • 当子类的方法重载父类的方法时,方法的前置条件(即方法的输入参数)要比父类的方法更宽松
    • 当子类的方法实现父类的方法时(重写/重载或实现抽象方法),方法的后置条件(即方法的的输出/返回值)要比父类的方法更严格或相等
  • 相关阅读:
    LeetCode Product of Array Except Self
    python基础学习笔记(十)
    python基础学习笔记(九)
    python基础学习笔记(八)
    python基础学习笔记(六)
    python基础学习笔记(七)
    python基础学习笔记(五)
    python基础学习笔记(一)
    python基础学习笔记(三)
    python基础学习笔记(四)
  • 原文地址:https://www.cnblogs.com/KL2016/p/14691506.html
Copyright © 2011-2022 走看看