11. 无数人难办事? - 迪米特法则(LoD)
11.1 第一天上班
- 时间: 4月2日19点 地点: 小菜大鸟住所的客厅 任务: 小菜, 大鸟
“回来啦! 怎么样? 第一天上班感受多吧.” 大鸟关关心的问道.
“感受真是多哦!!!” 小菜一脸的不屑.
“怎么了? 受委屈了吗? 说说看怎么回事.”
“委屈谈不上, 就感觉公司氛围不是很好. 我一大早就到了他们公司, 正好我的主管出去办事了, 人事处的小杨让我填了表后, 就带我到 IT 部门领取电脑, 他向我介绍了一个叫 ‘小张’ 的同事认识, 说我跟他去办领取电脑的手续就可以了. 小张倒是蛮客气, 正打算要装电脑的时候, 来了个电话, 叫他马上去一个客户那里处理 pc 故障, 他说要我等等, 回来帮我弄. 我坐了一个上午, 都没有见他回来, 但我发现 IT 部门其实还有两个人, 他们都在电脑前, 一个忙于 qq, 一个好像在看新闻. 我去问人事处的小杨, 可不可以请其他人帮我办理领取手续, 他说他现在也在忙, 让我自己去找一下 IT 部门的小李, 他或许有空. 我又返回 IT 部办公室, 请小莉帮忙, 小李忙着回了两个 qq 后, 才接过我领取电脑的单子, 看到上面写着 ‘张繁忙’ 负责电脑领取安装工作, 于是说这个事是小张负责, 他不管, 叫我还是等小张回来再说吧. 我就这样又像皮球一样被踢到桌边继续等待, 还好我带着一本<<重构>>在看, 不然真要郁闷死. 小张快到下班的时候才会来, 开始帮我装系统, 加域, 设置密码等, 其实也就是 Ghost 恢复在设置一下, 差不多半个小时就弄好了.” 小菜感叹的说到, “就这样, 我这人生一个最重要的第一次就这么度过了.”
“哈哈, 就业, 结婚, 生子, 人生三大事, 你这第一大事的开头是够郁闷的.” 大鸟同情的说到, “不过现实社会就是这样的, 他们又不认识你, 不给你面子, 也是很正常的. 上班可不是上学, 复杂着呢. 罢了罢了, 谁叫你预期不好, 你的主管在公司, 事情就会好办多了.”
11.2 无熟人难办事
“不过, 这家公司让你感觉不好原因在于管理上存在一些问题.” 大鸟接着说, “这倒是让我想起来我们设计模式的一个原则, 你的这个经历完全可以体现在这个原则的观点.”
“哦, 是什么原则?” 小菜的情绪被调动起来, “你怎么什么事情都可以和软件设计模式搭界呢?”
“大鸟我显然不是吹出来的….” 大鸟得意洋洋说道.
“啧啧, 行了行了, 大鸟你强!!! 不是吹的, 是天生的! 快点说说, 什么原则? “ 小菜对打鸟的吹鸟腔颇为不满, 希望快些进入正题.
“你到了公司, 通过人事处小杨, 认识了 IT 部的小张, 这是, 你已经认识了两个人. 但因没人介绍你并不认识 IT 部小李. 既然小张小李都属于 IT 部门, 本应该都可以给你装系统配置账号的, 但却因小张有事, 而你又不让认识小李, 而造成你的人生第一次大大损失, 你说我分析的对吧?”
“你这都是废话, 都是我告诉你的事情, 哪有什么分析.” 小菜失望到.
“如果你同时认识小张和小李, 那么任何一人有空都可以帮你搞定了, 你说对吧.”
“还是废话”
“这就说明, 你得把人际关系搞好, 所谓 ‘无熟人难办事’, 如果你在 IT 部 ‘有人’, 不就万事不愁了吗?” 大鸟一脸坏笑.
“大鸟, 你到底想说什么? 我要是有关系, 对公司所有人都熟悉, 还用的着你说呀.”
“小菜, 瞧你急的, 其实我想说的是, 如果 IT 部门有一个主管, 负责分配任务, 不管任何需要 IT 部配合的工作都让主管安排, 不就没有问题了吗?” 大鸟开始正经起来.
“你的意思是说, 如果小杨找到的是 IT 部门的主管, 那么就算是小张没空, 还是可以通过主管安排小李去做, 是吗?”
“对头” 大鸟笑着鼓励到.
“我明白了, 关键在于公司里可能没有 IT主管, 他们都是找到谁, 就请谁去工作, 如果都熟悉, 有事情可以协调着办, 如果不熟悉, 那么就会出现我碰到的情况了, 有人忙死, 有人闲着, 而我在等待.”大专栏 11. 无数人难办事? - 迪米特法则(LoD)r/> “没有管理, 单看人际关系协调是很难办成事儿. 如果公司 IT 部就一个小张, 那什么问题也没有, 只不过是效率低些. 后来再来个小李, 那工作叫谁去做呢? 外人又不知道他们两个人谁忙谁闲的, 于是抱怨, 推诿, 批评就随风而至. 要是三个人IT 部门还没有了管理人员, 则更加麻烦. 正虽未一个和尚挑水吃, 两个和尚抬水吃, 三个和尚没水吃.”
“看来哪怕两个人, 也应该有管理才好. 我知道你的意思了, 不过这是啥管理问题, 和设计模式有关系吗?”
“急什么, 还没讲完呢? 就算有 IT主管, 如果主管正好不在办公室怎么办呢? 公司几十号人用电脑, 时时刻刻都有可能出故障, 电话过来找主管, 人不在, 难道就不解决问题了?”
“这个, 看来需要规章制度, 不管主管在不在, 谁有空谁先去处理, 过后汇报给主管, 再来进行工作协调.” 小菜也学着分析起来.
“是呀, 就像有人在路上被车撞了, 东到医院, 难道还要问清除有没有钱才给治疗吗? ‘人命大于天’ 呀, 同样的, 在现在的高科技企业, 特别是软件公司, ‘电脑命大于天’, 开发人员工资平局算下来每天是按数百计的, 耽误一天天半天, 实在是公司的大损失呀—所以你想过应该怎么办没有?”
“我觉的, 不管认不认识 IT 部的人, 我只要电话或亲自找到 IT 部, 他们都应该想办法帮我解决问题.”
“好, 说的没错, 那你打电话时, 怎么说呢? 是说 ‘经理在吗?….小张在吗?…..’ , 还是 ‘IT部’ 是吧, 我是小菜, 电脑已坏, 再不修理, 软件歇菜.”
“哼, 你这家话, 就会拿我开心! 当然是问 IT 部门比问具体某个人来的更好!”
“这样子一来, 不管公司任何人, 找 IT 部门就可以了, 无论人不认识人, 反正他们会想办法找人来解决.”
“哦, 明白了, 我真的明白了. 你的意思是说, IT 部门代表是抽象类或接口, 小张小李代表是具体的类, 之前你在分析会修电脑不会修收音机里讲得依赖倒转原则, 及面向接口编程, 不要面向实现编程及是这个意思?” 小菜突然有顿悟的感觉, 兴奋异常.
11.3 迪米特法则(Law of Demeter/ Least KnowLedge Principle)
“当然, 这个原则也是满足的, 不过我今天想讲的是一个设计原则: 迪米特法则(LoD), 也叫最少只是原则[J&DP].“
迪米特法则(LoD): 如果两个类不必直接通信, 那么这两个类就不应当发生直接的相互作用. 如果其中一个类需要调用另一个类的某一个方法的话, 可以通过第三者转发这个调用.[J&DP].
“迪米特法则首先强调的前提是在类的结构设计上, 每一个类都应当尽量降低成员的访问权限[J&DP], 也就是说, 一个类把装好自己的 private 状态, 不需要让别的类知道的字段或行为就不要公开.”
“哦, 是的, 需要公开的字段, 通常就送属性来体现了. 这不是封装的思想吗?”
“当然, 面向对象的设计原则和面向对象的三大特性本就是不矛盾的. 迪米特法则的根本思想, 是强调了类之间的松耦合, 及那你今天碰到的这件事来做例子, 你第一天去公司, 怎么会认识 IT 部的人呢, 如果公司有很好的管理, 那么应该是认识的小杨打电话到 IT 部门, 告诉主管安排人给小菜你装电脑, 就算是开始时小张负责, 里临时有急事, 主管也可以在安排小李来处理. 同样道理, 我们在程序设计时, 类之间的耦合越弱, 越有利于复用, 一个处在弱耦合的类被修改, 不会对有关系类造成波及. 也就是说, 信息的隐藏促进了软件的复用.”
“明白, 由于 IT 部是抽象的, 哪怕里面的人都离职换了新人, 我的电脑出问题也还是可以找 IT 部门解决, 而不需要认识其中的同事, 纯靠关系帮忙了. 就算需要认识, 我也只需要认识 IT 部门的主管就可以了, 由他来安排工作.”
“小菜动机不纯吗! 你不会是希望那个没帮你做事的小李快些被炒鱿鱼吧?哈!” 大鸟瞧着小菜笑道.
11. 无数人难办事? - 迪米特法则(LoD)的更多相关文章
- IOS设计模式的六大设计原则之迪米特法则(LOD,Law Of Demeter)
定义 狭义的迪米特法则定义:也叫最少知识原则(LKP,Least Knowledge Principle).如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中的一个类需要调用 ...
- 设计模式--迪米特法则(Lod/LKP)
迪米特法则:(Law of Demeter, LoD),也称最少知识原则(Least Knowledge Principle, LKP) 理解: 假设两个类不必彼此直接通信,那么这两个类就不 ...
- 5迪米特法则LoD
一.什么是迪米特法则 迪米特法则(Law of Demeter )又叫做最少知识 原则,也就是说,一个对象应当对其他对象尽可 能少的了解. 迪米特法则最初是用来作为面向对象的系统设 计风格的一种法则, ...
- 迪米特法则(LoD)
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用.其根本思想是类之间的松耦合. 类之间的耦合越弱,越有利于 ...
- [Python设计模式] 第11章 迪米特法则——最少知识原则
github地址:https://github.com/cheesezh/python_design_patterns 迪米特法则 迪米特法则(LoD),也叫最少知识原则,如果两个类不必彼此直接通信, ...
- Chapter 11 迪米特法则
迪米特法则也叫最少知识原则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用. 迪米特法则首先强调的前提是 ...
- 设计模式之六大原则——迪米特法则(LoD,LKP)
转载于:http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793000.html 定义: 迪米特法则(Law of Demeter,LoD)也 ...
- 大熊君说说JS与设计模式之(门面模式Facade)迪米特法则的救赎篇------(监狱的故事)
一,总体概要 1,笔者浅谈 说起“门面”这个设计模式其实不论新老程序猿都是在无意中就已经运用到此模式了,就像我们美丽的JS程序员一样不经意就使用了闭包处理问题, function Employee(n ...
- 5.迪米特法则(Law Of Demeter)
1.定义 狭义的迪米特法则定义:也叫最少知识原则(LKP,Least Knowledge Principle).如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中的一个类需要 ...
随机推荐
- python 知识点补充
python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数 ...
- macOS更新失败解决
下载离线更新包解决. https://support.apple.com/downloads/combo
- Rnotebook中用python画图
如果notebook需要转化为pdf, 能想到办法是保存图片文件,嵌入mardown语法中. 但是如果在html中显示, 可以考虑下面思虑, 比较取巧. ``` {python, engine.pat ...
- maven仓库镜像、私服与jdk版本配置
--配置全局镜像,setting.xml <mirrors> <mirror> <id>alimaven</id> <name>aliyun ...
- 爬虫笔记(九)——安装Fiddler
在ubuntu下不能直接安装Fiddler,我们要先安装mono环境,具体可分为三个步骤: 1. 在终端下输入指令安装mono环境 :sudo apt-get install mono-compl ...
- MySQL_学习资料
https://mp.weixin.qq.com/s/qOmyaEEpVJTUMZYfomp3ug
- python语法基础-并发编程-线程-长期维护
############### 线程和GIL,全局解释器锁 ############## """ 线程 为什么会有进程? 主要是能够同时处理多个任务,多个任务还 ...
- fidder 抓包工具设置只拦截指定ip(服务ip)
直接上图:
- QLIKVIEW基础设置及初步了解
改变语言环境 开发工具条勾选出来 创建selection box 创建search box 编辑脚本 重加载数据 基本联动思路:table view tableview load FSUPPLIERI ...
- docker 不同引擎导致历史垃圾镜像无法自动清除,致硬盘空间报警
查看硬盘占用大户是/var/lib/docker/vfs/dir 直觉是images文件,历史原因累积了大量的image docker rmi 清除掉不用的image文件 可用空间有提升但提升不大 / ...