面向对象设计中最重要了有两个方面,一是类的识别,一个类的职责分配。其实这两者之间其实有内在联系。比如当你认为有必要新建一个类时,你一定是已经有了某个职责要分配给它;当你发现某个职责谁做都不合理时,就会考虑是不是要新建一个类。今天主要聊下职责分配的问题。
职责分配最重要的一条就是专家原则,就是谁具备完成这项职责的条件,拥有相关的资源;比如吃饭这个事,只有嘴巴最适合做;因为它有个入口,还拥有牙齿这样的利器,并且具备把食物送到胃里面去的通道。具体设计中也是一样,谁最适合做就让它做。当然这可能碰到这样的情况,发现有某个类是个“多面手”,很多事情它都能做,这时候根据专家原则,你就会发现它的职责会越来越多。这时候你觉得是不是专家原则有问题?不是,问题的根源是 设计中不允许有这样的"多面手"类,你必须把它的资源分给其它类(也许需要New新类)。
专家原则其实是个很有趣的现象,其实我们每天都会碰到。项目经理最爱找谁?特别是紧急的事情,他会找一个他认为最能解决他问题的那个人。所以你经常发现项目组的核心程序员、项目组长非常忙,而一般成员就相对清闲些。这就是专家原则在起作用。以此推测,当你新加入一个陌生团队时,你就很容易找到谁是核心成员。如果你是项目组长,你也许必须让你的手下成为至少一个方面的专家,否则根据专家原则,你就不可能解脱。
要学会做专家,要学会培养专家,更重要的是识别专家。
----------------------------------------------------------------------
张瑜,Mybeautiful, zhangyu0182@sina.com.
分享到:
相关推荐
本文深入浅出阐述了面向对象设计中的职责分配原则,辅以java代码示例。
第六章 面向对象设计(1)--类职责分配
XX鞋业质量手册质量管理体系过程职责分配表(制度范本、PDF格式).pdf
单一职责原则可以使类的复杂度降低,实现什么职责都有清晰明确的定义;类的可读性提高,复杂度降低;可读性提高了,代码就更容易维护;变更(需求是肯定会变)引起的风险(包括测试的难度,以及需要测试的范围)降低...
设计模式6大原则:单一职责原则
部门职责分配表.doc
一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的
质量职责分配表.docx
岗位职责分配表.doc
在架构中体验设计模式和算法之美 Java设计原则 单一职责原则
组织架构及职责分配表.doc
招聘活动角色职责分配表.docx
PMP考试 RACI 职责分配矩阵 模型使用详解及案例分析
项目经理部_部门职责分配表.doc
部门职责分配表(DOC格式).doc
听说你还在满世界找职责分配表DOC?在这里,为大家整理收录了最全、最好的职责分配表DOC以供参...该文档为职责分配表DOC,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
医院重点传染病防治专家组及职责(2019年医院感染和防控制度汇编).docx