zoukankan      html  css  js  c++  java
  • 依赖倒转原则 -- 大话设计模式

    在今天,读书有时是件“麻烦”事。它需要你付出时间,付出精力,还要付出一份心境。--仅以《大话设计模式》来祭奠那逝去的……

    依赖倒转原则:A,高层模块不应该依赖低层模块,两个都应该依赖抽象;B,抽象不应该依赖细节,细节应该依赖抽象。

    为什么会叫依赖倒转?

      面向过程开发时,为了使常用代码可以复用,一般都会把这些常用代码写成许许多多函数的程序库,这样我们在做新项目时,去调取这些底层函数就好了。比如我们做的项目大多都要访问数据库,所以我们把访问数据库的代码写成了函数,每次做新项目的时候都去调取这些函数。这就是高层模块依赖低层模块,问题也就出在这里。我们要做新项目的时候,发现高层业务逻辑代码都一样,但客户缺希望使用不同的数据库去实现,这时候就出现麻烦了。我们都希望可以利用这些高层模块,但是高层模块都是和底层模块绑定在一起的,没办法复用这些高层模块,这就非常糟糕了。PC里,如果CPU、内存、硬盘如果都依赖主板,主板一坏就都不能用了。反过来,如果内存坏了,也不能造成其他部件不能用才对。而如果不管高层模块还是低层模块,它们都依赖于抽象(接口或者抽象类),只要接口稳定,那么任何一个更改,都不用去担心其他受到影响,这就使得无论高层还是低层模块都可以被很容易的复用,这才是最好的方法。

    为什么依赖了抽象,就不怕更改了呢?

      里氏替换原则:子类型必须能够替换掉它的父类型。只有当子类型能够替换掉父类型,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能再父类的基础上增加新的行为。鸟是父类,可以飞,但是企鹅不会飞,所以企鹅就不能是鸟的子类。

      

  • 相关阅读:
    使用UpdatePanel后如果在Render中篡改输出的html代码问题解决方案
    .net项目的二次开发解决方案
    (转)C#开源资源大汇总
    实例讲解PostSharp(一)
    实例讲解PostSharp(二)
    10个故事看员工管理和激励(转)
    用日志记录LINQ中的所有增删改的SQL语句的方法
    IT管理人才必备的十大能力(转)
    揭示常见的重构误区(转)
    利用传入的Type类型来调用范型方法的解决方案
  • 原文地址:https://www.cnblogs.com/amywechat/p/4917364.html
Copyright © 2011-2022 走看看