依赖抽象,不要依赖具体
2011-09-15 18:55
176 查看
这是OO设计中的一个原则。到底是什么破意思啊?笨笨地来理解一下吧:
抽——————抽出来的东西;象————————我不知道什么意思;可是能理解抽就OK了。
你叫我怎么说呢,这个东西,总之你不能把它想的很神秘,如果你把它想的跟神似的,你基本上就高攀不起了,它就是一种经验的总结 ,其它的什么玩意儿都不是。
我这个人比较笨,什么都得有例子才能玩的转,下面 就是一个例子啊:
时下喜欢小狗,小猫的人多了,开个宠物店肯定有的赚!在这里我就有个疑问了,为什么人们要开宠物店而不开个什么小狗店,小猫店什么的?
这个问题很牛,虽然比不上牛顿被砸时产生的问题牛,但是这毕竟是什么理解道路上的一环呀!
你要开个小狗店,那意思就说你只能卖小狗了,小猫店类似;
呵呵,现在我们站在顾客的角度去想想这个问题,顾客说,我想买个小狗,所以我要去宠误点店(而不是小狗店)!我知道狗就是宠物(你看我多聪明呀)!
分析分析:
现在顾客很显然他想买一只狗,但他却去了宠物店,很显然他依赖于宠物这个“”概念“”;而宠物店对大家宣传的是我这有宠物,而不是说宣传我这有狗或者猫;
这样就产生了一种效果:宠物店可以把任何可以称为宠物的东西(比如一只恐怖的大Python)放在店里卖;而顾客可以去宠物店去买任何它以为是宠物的东东(比如一只恐怖的大Python)。其实,这就是依赖倒置原则了:最上面的是宠物店,中间是宠物(概念级别),最下面是顾客。而宠物店和顾客都以来于宠物这个抽象的概念!
抽——————抽出来的东西;象————————我不知道什么意思;可是能理解抽就OK了。
你叫我怎么说呢,这个东西,总之你不能把它想的很神秘,如果你把它想的跟神似的,你基本上就高攀不起了,它就是一种经验的总结 ,其它的什么玩意儿都不是。
我这个人比较笨,什么都得有例子才能玩的转,下面 就是一个例子啊:
时下喜欢小狗,小猫的人多了,开个宠物店肯定有的赚!在这里我就有个疑问了,为什么人们要开宠物店而不开个什么小狗店,小猫店什么的?
这个问题很牛,虽然比不上牛顿被砸时产生的问题牛,但是这毕竟是什么理解道路上的一环呀!
你要开个小狗店,那意思就说你只能卖小狗了,小猫店类似;
呵呵,现在我们站在顾客的角度去想想这个问题,顾客说,我想买个小狗,所以我要去宠误点店(而不是小狗店)!我知道狗就是宠物(你看我多聪明呀)!
分析分析:
现在顾客很显然他想买一只狗,但他却去了宠物店,很显然他依赖于宠物这个“”概念“”;而宠物店对大家宣传的是我这有宠物,而不是说宣传我这有狗或者猫;
这样就产生了一种效果:宠物店可以把任何可以称为宠物的东西(比如一只恐怖的大Python)放在店里卖;而顾客可以去宠物店去买任何它以为是宠物的东东(比如一只恐怖的大Python)。其实,这就是依赖倒置原则了:最上面的是宠物店,中间是宠物(概念级别),最下面是顾客。而宠物店和顾客都以来于宠物这个抽象的概念!
相关文章推荐
- 依赖抽象,不要依赖具体
- 【转】依赖抽象,不要依赖具体
- 不依赖于具体的抽象是毫无意义的
- 将时间戳转换为日期(不要具体时间)
- 虽然写管理类软件非常依赖数据库,但是建议您不要过度依赖数据库,我们不要把思维只局限在存取数据库上
- 什么是依赖,什么是抽象
- 抽象与具体
- android 全局对话框(不依赖具体activity)
- 不要依赖apue.h
- 不要点击一个功能就创建一个新的网页,要尽量少的新创建页面(例如:办事指南,点击一个部门创建一个网页,选择具体事项时,又创建一个网页,这样创建的网页太多)
- 为什么不要将spring-boot相关依赖打入二方包
- VC包含目录、附加依赖项、库目录及具体设置
- VC包含目录、附加依赖项、库目录及具体设置
- 不要依赖hibernate的二级缓存
- 通过maven获得开源项目simple4依赖jar包的几种具体操作
- 西安尚学堂告诉你java开发为什么不要过分依赖框架
- 前端,不要太过依赖JQuery库(二)
- 关于java线程(4)----JUC之 AQS 状态依赖的抽象
- 利用抽象工厂创建DAO、利用依赖注入去除客户端对工厂的直接依赖、将有关Article的各种Servlet封装到一个Servlet中(通过BaseServlet进行
- 低级语言依赖具体的计算机硬件,为什么高级语言不会?