美文网首页
02 设计模式 原则

02 设计模式 原则

作者: 格林哈 | 来源:发表于2020-11-23 15:46 被阅读0次

    1 面向对象的基本原则

    1.1 抽象类与接口区别

    • 抽象类

      • 继承,表示 is a 关系
        • 人是动物
    • 接口

      • 复用, 表示 has a关系
        • 人 has a 手
    • 组成维度

        • 职责 单一职责原则
        • 权限 开闭原则
        • 继承类
          • 合成/聚合复用原则
        • 实现接口
          • 隔离 接口隔离原则
        • 字段/方法参数
          • 依赖倒置原则
          • 迪米特法则
          • 里氏替换原则
    import java.io.Serializable;
    
    /**
     * Main class
     * 职责(单一职责原则)
     * 继承类 合成/聚合复用原则
     * 实现接口 接口隔离原则
     * 类相关权限 开闭原则
     * @date 2020-11-23
     */
    public class Main extends Object implements Serializable {
        // 字段 或者方法参数  是否需要加入 考虑 迪米特法则
        Integer fied; // 考虑 依赖倒置原则,里氏替换原则
    }
        
    

    1.2 单一职责原则

    • 一个类只负责一项职责
    • 优点
      • 降低类的复杂度,一个类只负责一个之职责,逻辑比负责多个简单
      • 提供类的可读性能,提高系统的可维护性
      • 变更引起风险降低了。

    1.3 里氏替换原则

    • 任何基类可以出现的地方,子类一定可以出现
    • 子类可以扩展父类的功能,但不能改变父类原有的功能
      • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
      • 子类中可以增加自己特有的方法
      • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松
      • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格

    1.4 开闭原则

    • 定义: 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
    • 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
    • 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化

    1.5 迪米特法则(最少知道原则)

    • 一个对象应当对其他对象的细节有尽可能少的了解。
    • 一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立

    1.6 依赖倒置原则

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

    1.7 接口隔离原则

    • 接口尽量单一,只代表一个角色。
    • 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
    • 要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。

    1.8 合成/聚合复用原则

    • 要尽量使用合成和聚合,尽量不要使用继承。

    相关文章

      网友评论

          本文标题:02 设计模式 原则

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