重构对象-Introduce Local Extension引入本地扩展八 1.引入本地扩展 1.1.使用场景 当我们调用第三方服务的类时,通常这个类我们都无法修改它,如果想要让他添加一个函数实现我们…
重构对象-Introduce Foreign Method引入外加函数七 1.引入外加函数 1.1.使用场景 当我们调用第三方服务的类时,通常这个类我们都无法修改它,如果想要让他添加一个函数实现我们需…
重构对象-Remove Middle Man移除中间人六 1.移除中间人 1.1.使用场景 在Hide Delegate (157)的“动机”一节中,我谈到了“封装受托对象”的好处。但是这层封装也是要…
重构对象-Hide Delegate隐藏委托关系五 1.隐藏委托关系 1.1.使用场景 向客户端影藏服务端的代理关系,减少客户端和服务端的耦合关系,服务端内部调整结构时不会影响客户端使用。 举个例子 …
重构对象-Inline Class将类内联化四 1.将类内联化 1.1.使用场景 Inline Class (154)将类内联化正好与Extract Class (149)提炼类相反。如果一个类不再承…
重构对象-Extract Class提炼类三 1.提炼类 1.1.使用场景 某个class做了应该由两个classes做的事 你也许听过类似这样的教诲:一个class应该是一个清楚的抽象(abstra…
重构对象-Move Field搬移值域二 1.搬移值域 1.1使用场景 如果我发现,对于一个field(值域),在其所驻class之外的另一个class中有更多函数使用了它,我就会考虑搬移这个fiel…
重构对象-Move Method搬移函数一 1.搬移函数 1.1.使用场景 当前类的函数与另外一个类有非常多的交流(调用关系),那么两个类之间有太多合作而形成高度耦合(highly coupled),…