• 面向对象的设计模式与原则


    面向对象的特性

    -封装:隐藏内部实现【减少耦合、提高软件可重用】

    -继承:复用现有代码【可扩展性、代码重用】

    -多态:同一个行为不同表现形态【可替换性、灵活性、简化性】

    可实现:单继承+多接口实现、抽象方法和虚方法重写

    从设计原则到设计模式

    针对接口编程,而不是针对于具体实现编程
    调用者无需知道所使用的方法的具体实现,而是想知道是否存在有实现该方法的接口定义

    优先使用对象组合,而不是类继承
    继承在某种程度上破坏了封装性,子类父类耦合度高;而对象组合则只要求被组合的对象具有良好定义的接口,耦合度低

    封装变化点
    使用封装将不变的地方抽离出来,变化的地方进行封装,从而只需要改变变化点,而不影响其他不变的地方,实现层次的耦合

    七大基本原则

    1.单一职责原则(SRP)
    一个类的功能要单一,职责划分清楚、否则就会太臃肿

    2.开放封闭原则(OCP)
    软件功能尽可能对扩展开放、修改封闭

    3.里氏替换原则(LSP)
    子类可以替换父类,但是父类不能替换子类

    4.依赖倒置原则(DIP)
    高层次模块不应该依赖于低层次模块,二者都应该依赖于抽象
    抽象不应该依赖于实现细节,实现细节应该依赖于抽象

    5.接口隔离原则(ISP)
    不应该强迫客户程序依赖于它们不用的方法

    6.迪米特法则(LoD)
    如果两个软件实体无需直接通讯,那么就不应该发生直接的相互调用,可以通过第三方转发调用

    7.合成复用原则(CRP)
    它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现

    参考视频和文档:

    https://www.bilibili.com/video/BV1uJ41157dC?from=search&seid=12951163858889790025
    http://c.biancheng.net/view/1317.html

  • 相关阅读:
    题解 CF432D 【Prefixes and Suffixes】
    题解 P3199 【[HNOI2009]最小圈】
    题解 AT1221 【水筒】
    题解 P4381 【[IOI2008]Island】
    题解 CF1242B 【0-1 MST】
    《数据库系统概论》 -- 3.1 SQL概论和DDL
    《数据库系统概论》 -- 2. 关系操作
    《数据库系统概论》 -- 1. 绪论
    配置vim成为IDE
    ubuntu--软件管理
  • 原文地址:https://www.cnblogs.com/ZQWelcomeIndex/p/12687659.html
Copyright © 2020-2023  润新知