码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式六大原则: 老板是如何减轻负担的 -- 依赖倒置原则

时间:2016-08-13 00:00:39      阅读:428      评论:0      收藏:0      [点我收藏+]

标签:

很多创业公司都对外宣称“扁平化管理”,什么是“扁平化管理”呢?请看下面这张架构图:

技术分享

因为人少,老板直接管理着采购、销售、人力跟 IT 等人员,虽然累了点,但部门少、人不多也还好。

但是随着公司规模发展,每次新加入人员老板都要去认识、沟通,出现问题还得去约出去喝个茶,老板发现自己的时间都浪费在这些琐事,容易耽搁事不说,还发挥不出更大价值。

这时他决定招一些经理替自己分别管理各个部门,自己只要管理这些经理就好了。

于是新的架构图是这样的:

技术分享

老板这下子省心多了,有问题直接找部门经理就好了。至于哪个部门有召新人、或者员工不好好干开除了,他都不用操心。

传统软件开发中,类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。参考自这里

这对应创业初期公司的“扁平化”,老板就是高层类A,高层一旦对低层的具体有依赖,将来低层变动 时高层就需要修改,这很类,也容易出错。

技术分享

而老板负担能够减轻,正是依赖倒置原则的作用。

高层模块不应该依赖具体底层模块,两个都应该依赖接口。简单的说就是面向接口编程,而不是面向具体实现。
任何变量都不应该持有一个指向具体类的指针或引用。

技术分享

在实际编程中,我们一般需要做到如下3点:

  1. 低层模块尽量都要有抽象类或接口,或者两者都有。
  2. 变量的声明类型尽量是抽象类或接口。
  3. 使用继承时遵循里氏替换原则

依赖倒置有三种方式来实现

  1. 通过构造函数传递依赖对象;
    比如在构造函数中的需要传递的参数是抽象类或接口的方式实现。
  2. 通过setter方法传递依赖对象;
    即在我们设置的setXXX方法中的参数为抽象类或接口,来实现传递依赖对象。
  3. 接口声明实现依赖对象,也叫接口注入;
    即在函数声明中参数为抽象类或接口,来实现传递依赖对象,从而达到直接使用依赖对象的目的。

依赖倒置原则的核心就是要我们面向接口编程,理解了面向接口编程,也就理解了依赖倒置。

感谢

《大话设计模式》
http://blog.csdn.net/imyfriend/article/details/7465596
http://blog.csdn.net/zhengzhb/article/details/7289269

设计模式六大原则: 老板是如何减轻负担的 -- 依赖倒置原则

标签:

原文地址:http://blog.csdn.net/u011240877/article/details/52194373

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!