标签:代码坏味道
NEO是开发的网上蜂蜜商城中常常会让几个类有说不清道不明的关系,NEO即使付出再大的代价调试,他也不去拆分明确这些类的关系。系统终于在NEO的巨大付出下上线了。小朱是一个网购达人,她想去买一瓶优质的蜂蜜,浏览了jd和taobao这些网上商城都没有找到自己心仪的,突然在一个不经意的地方发现了NEO的商城链接,小朱进去之后购买了一瓶蜂蜜之后留下了建议,希望网站能做到最新蜂蜜信息能够通过邮箱、手机、微信等方式及时推送到我的手上。
NEO下班回来看到了这个消息觉得小朱的建议很有价值,这样可以更多的留住回头客。NEO开始设计代开发,这个网站建设都过了一些时间了,当时写的逻辑都忘记的差不多了,NEO读着代码发现有关客户的资料信息在很多类里面都有描述,比如在客户类中有客户喜好,但是在客户偏好里面有客户联系的信息,这几个类就像连体人一样,其中一个类小人的一个动作会让其他类小人做出一些反映,比如维护我的基本资料我会涉及到偏好的维护,但这不是必须的。NEO多次组合这些类小人关系,都不能达到目标,他这时第一次变得力不从心了,因为就连他现在也不能确定哪些变了会影响哪些类行为。
NEO的师傅知道这件事之后专程抽了一个周末去看望他,指出了NEO的程序中没有将类的职责分离的清晰明确,这时NEO的师傅建议他大动手术把这个连体人进行分离,这个连体人已经长成了一起了,其中血脉盘根错节,进行分离不是一件易事,手术刀一不小心就会照成大出血.....
其实我们学过设计模式也知道,我们把系统中的每一个类,比喻成系统中需要顶一项职责的人,当我们设计这些类小人的时候就设计成连体人,那么我们就无法单独调用某一个类小人,干一件只属于他的事情了,牵一发而动全身。所以建议在设计类小人的时候,反复问自己这个类小人的职责应不应该包含这个职责??在出现连体类小人的苗头的时候,就进行手术分离,不仅风险小而且很快就完成了。。。。
标签:代码坏味道
原文地址:http://blog.csdn.net/scalzdp/article/details/38817615