zoukankan      html  css  js  c++  java
  • 《架构整洁之道》之依赖反转原则

    依赖反转原则主要想告诉我们,如果想要设计一个灵活的系统,在源代码层次的依赖关系中就应该多引用抽象类型,而非具体实现。

    一、稳定的抽象层

    我们每次修改抽象接口的时候,一定也会去修改对应的具体实现。但反过来,当我们修改具体实现时,却很少需要去修改响应的抽象接口。所以我们可以认为接口比实现更稳定。

    也就是说,如果想要在软件架构设计上追求稳定,就必须多使用稳定的抽象接口,少依赖多变的具体实现。下面,我们将该设计原则归结为以下几条具体的编码守则:

    • 应在代码中多使用抽象接口,尽量避免使用那些多变的具体实现类。
    • 不要再具体实现类上创建衍生类。
    • 不要覆盖包含具体实现的函数。
    • 应避免再代码中写入与任何具体实现相关的名字。

    二、工厂模式

    如果想要遵守上述编码守则,我们就必须要对那些易变对象的创建过程做一些特殊处理,这样的谨慎是很有必要的,因为基本上在所有的编程语言中,创建对象的操作都免不了需要在源代码层次上依赖对象的具体实现。

    在大部分面向对象编程语言中,人们都会选择用抽象工厂模式来解决这个源代码依赖的问题。

    三、具体实现组件

    我们在软件系统中并不可能完全消除违法依赖反转原则的情况。通常只需要把它们集中于少部分的具体实现组件中,将其与系统的其他部分隔离即可。

  • 相关阅读:
    最短路之浇水
    agc031_d A Sequence of Permutations
    loj 3236 [POI2019 R1] Układ scalony
    CodeForces 1237H Balanced Reversals
    CodeForces 1320F Blocks and Sensors
    CodeForces 1340D Nastya and Time Machine
    agc037_f Counting of Subarrays
    nikkei2019_2_qual_e Non-triangular Triplets
    CodeForces 603E Pastoral Oddities
    Vue router / ElementUI,Ant Design Vue 重复点击导航路由报错解决方法
  • 原文地址:https://www.cnblogs.com/youcong/p/13282608.html
Copyright © 2011-2022 走看看