第二版中有4中坏味道进行了改名。 2.1 内幕交易(Insider Trading) 原名:押昵关系(Inappropriate Intimacy) 这是应该唯一一个与技术无关的改动。Intemacy的桃色意味较浓,在书中显得不雅而又突兀。改成“Insider Trading”就好多了。 Insider Trading指模块之间过多的使用了对方的私有部分。以下是几种常见的情形: C++...
第二版中有4中坏味道进行了改名。 2.1 内幕交易(Insider Trading) 原名:押昵关系(Inappropriate Intimacy) 这是应该唯一一个与技术无关的改动。Intemacy的桃色意味较浓,在书中显得不雅而又突兀。改成“Insider Trading”就好多了。 Insider Trading指模块之间过多的使用了对方的私有部分。以下是几种常见的情形: C++...
委托函数过多时,减少委托,移除中间人,让调用者直接访问目标类进行操作。 19. 内幕交易 减少模块之间频繁的数据交换,并把这种交换放到明面上。 20. 过大的类 当一个类代码行数太多或者功能职责太多的时候,拆掉它。 两种拆分方法: 提取新类,当大类的部分行为可以分解为一个单独的组件,则可以使用提取类的方式拆分。
19、内幕交易 20、过大的类 21、异曲同工的类 22、纯数据类 23、被拒绝的遗赠 24、注释 参考 提炼自《重构:改善既有代码的设计(2nd)》 通过发霉腐坏的气味隐喻那些在设计上别扭、理解上费劲、维护上困难的问题代码。 P.S. 推荐"guru"这个网站,这个网站对学习设计模式和重构有很大帮助。 1、神秘命名 函数、...
内幕交易(Insider Trading) 过大的类(Large Class) 异曲同工的类(Alternative Classes with Different Interfaces) 使用类的好处之一就在于可以替换,今天用这个类,未来可以换成用另一个类。但只有当两个类的接口一致时,才能做这种替换 可以用改变函数声明将函数名变得一致,但这往往不够,反复运用搬移函数将某些行为移...
内幕交易(Insider Trading) 模块之间的数据交换应该放在明面上来 过大的类(Large Class) 单个类想做的事情太多 异曲同工的类(Alternative Classes with Different Interfaces) 纯数据类(Data Class) 大概就类似于我们的Entity类,持保留意见 被拒绝的遗赠(Refused Bequest) ...
内幕交易- 搬移函数、搬移字段、隐藏委托关系、以委托取代子类、以委托取代超类 过大的类- 提炼类、提炼...
内幕交易 模块之间大量交换数据,增加模块间的耦合,应当尽量减少这种情况。 过大的类 如果单个类做太多事情,往往会出现很多字段与重复代码。最好是将相关的变量提到新类,或者提炼相同的代码到函数去。 异曲同工的类 当存在不同的类却在做同样的事时,可以通过搬移函数到其中一个类,逐渐消灭另一个类。
19 内幕交易(Insider Trading) 两个模块之间,一定的数据交换不可避免,但我们必须尽量减少这种情况,并把这种交换都放到明面上来。如果两个模块总是窃窃私语,就应该用搬移函数和搬移字段,减少她们的私下交流。如果两个模块有共同的兴趣,可以尝试再新建一个模块,把这些公用的数据放在一个管理良好的地方。
内幕交易 和中间人相反,如果在a中直接返回b,这样b里面的方法修改,影响的地方会很多,但是如果在a里面包装b的的方法,影响的只有a。过度使用中间人和内幕交易 一个度的问题,描述的相反的情况。 过大的类(过于复杂的类) 一个类里面有太多各自类型的属性,比如一个电脑,它只应该有8大件,不应该有具有主频,内存容量等...