依赖倒转原则

依赖倒转原则:

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

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

 

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

 

依赖倒转原则:

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

 

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

这有什么问题呢?

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

 

里氏代换原则:

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

 

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

 

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

 

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

 

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

 

posted @ 2012-05-17 21:52  瓜蛋  阅读(808)  评论(0编辑  收藏  举报