前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式六大原则: 老板是如何减轻负担的 -- 依赖倒置原则

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

作者头像
张拭心 shixinzhang
发布2022-05-10 08:11:28
2140
发布2022-05-10 08:11:28
举报

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

这里写图片描述
这里写图片描述

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

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

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

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

这里写图片描述
这里写图片描述

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

传统软件开发中,类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。参考自这里
这对应创业初期公司的“扁平化”,老板就是高层类A,高层一旦对低层的具体有依赖,将来低层变动 时高层就需要修改,这很类,也容易出错。
这里写图片描述
这里写图片描述
而老板负担能够减轻,正是依赖倒置原则的作用。

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

这里写图片描述
这里写图片描述

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

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

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

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

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

代码地址点这里

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 传统软件开发中,类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。参考自这里
  • 这对应创业初期公司的“扁平化”,老板就是高层类A,高层一旦对低层的具体有依赖,将来低层变动 时高层就需要修改,这很类,也容易出错。
  • 而老板负担能够减轻,正是依赖倒置原则的作用。
  • 依赖倒置原则的核心就是要我们面向接口编程,理解了面向接口编程,也就理解了依赖倒置。
  • 代码地址点这里
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档