内联方法
问题
当方法主体比方法本身更明显时,使用这种技术。
解决方案
用方法的内容替换对方法的调用,并删除方法本身。
之前
类pizzdelivery{//…int getRating(){返回moreThanFiveLateDeliveries() ?2: 1;} boolean moreThanFiveLateDeliveries(){返回numberOfLateDeliveries > 5;}}
后
类pizzdelivery{//…int getRating(){返回numberOfLateDeliveries > 5 ?2: 1;}}
之前
类pizzdelivery{//…int GetRating(){返回MoreThanFiveLateDeliveries() ?2: 1;} bool MoreThanFiveLateDeliveries(){返回numberOfLateDeliveries > 5;}}
后
类pizzdelivery{//…int GetRating(){返回numberOfLateDeliveries > 5 ?2: 1;}}
之前
function getRating() {return ($this->moreThanFiveLateDeliveries()) ?2: 1;}函数moreThanFiveLateDeliveries(){返回$this->numberOfLateDeliveries > 5;}
后
函数getRating(){返回($this->numberOfLateDeliveries > 5) ?2: 1;}
之前
class pizzdelivery: #…def getRating(self):返回2 if self.moreThanFiveLateDeliveries() else 1 def moreThanFiveLateDeliveries(self):返回自身。numberoflatdelivery >
后
class pizzdelivery: #…def getRating(self):如果self返回2。numberoflatdelivery > 5 else 1
之前
类pizzdelivery{//…getRating(): number {return moreThanFiveLateDeliveries() ?2: 1;} moreThanFiveLateDeliveries():布尔{返回numberOfLateDeliveries > 5;}}
后
类pizzdelivery{//…getRating(): number{返回numberOfLateDeliveries > 5 ?2: 1;}}
为什么重构
一个方法简单地委托给另一个方法。这个代表团本身是没有问题的。但是当有很多这样的方法时,它们就变成了一个令人困惑的混乱,很难理清。
方法通常不会太短最初,但当对程序进行更改时就会变成这样。因此,不要羞于摆脱那些已经过时的方法。
好处
- 通过减少不需要的方法的数量,可以使代码更加简单。
如何重构
确保该方法没有在子类中重新定义。如果方法是重新定义的,请避免使用这种技术。
找到对该方法的所有调用。用方法的内容替换这些调用。
删除该方法。