zoukankan      html  css  js  c++  java
  • 依赖倒转原则

    依赖倒转原则:

    强内聚:像CPU一样,别的厂商木有办法造。因为看不见内部。

    松耦合:像CPU的针脚一样,主板厂商知道怎么造主板能用cpu

    依赖倒转原则:抽象不应该依赖结节,细节不应该依赖于抽象。说白了就是针对接口编程,而不是针对实现编程。

    依赖倒转原则:

    1. 高层模块不应该依赖低层模块。两个都应该依赖抽象。
    2. 抽象不应该依赖结节。细节应该依赖抽象。

    有些时候为了代码复用,一般会把常用的代码写成函数或类库。这样开发新项目时,直接用就行了。比如做项目时大多要访问数据库,所以我们就把访问数据库的代码写成了函数。每次做项目去调用这些函数。

    这有什么问题呢?

    我们要做新项目时,发现业务逻辑的高层模块都是一样的,但客户却希望使用不同的数据库或存储住处方式,这时就出现麻烦了。我们希望能再次利用这些高层模块,但高层模块都是与低层的访问数据库绑定在一起,没办法复用这些高层模块。所以不管是高层模块和低层模块都应该依赖于抽象,具体一点就是接口或抽象类,只要接口是稳定的,那么任何一个更改都不用担心了。

    里氏代换原则:

    说明:一个软件的实体,如果使用的一个类是父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化

    里氏代换原则:(LSP):子类必须能够替换掉它们的父类型【ASD】

    意思是:一件事情,父类能干,子类也一定要能干嘛,如果不是那么子类就不应该继承父类。

     

    正有了这个原则使得继承复用成为了可能。只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

    需求变化时,只须继承,而别的东西不会改变。由于里氏代换原则才使得开放封闭成为可能。这样使得子类在父类无需修改的话就可以扩展。这就是电脑坏了菜鸟也可以修,收音机坏了只有专家能修改的道理。电脑是模块化的,模块之间依赖性不强。而收音机依赖性很强,对以维护。

    本人新博客网址为:http://www.hizds.com
    本博客注有“转”字样的为转载文章,其余为本人原创文章,转载请务必注明出处或保存此段。c++/lua/windows逆向交流群:69148232
  • 相关阅读:
    关系运算符重载
    一元运算符重载
    二元运算符重载
    重载函数和重载运算符
    Linux之文件通信
    Linux进程通信之mmap
    Linux之创建多个子进程
    内联函数
    静态成员
    this指针
  • 原文地址:https://www.cnblogs.com/zhangdongsheng/p/2506874.html
Copyright © 2011-2022 走看看