2012-06-28 21 views
1

我很好奇这是什么类型的设计模式。这是一个常见的设计模式,可能委托模式?

我有一个方法,比如说dao.read()。

dao.read(a) { 
    b = a.moreFields 
    b.readField1(); // I want to move these calls ... 
    b.readField2(); 
    b.readField3(); 

    a.rootField1(); 
} 

比方说,我是重构read方法到这一点:

dao.read(a) { 
    marshal(a.b) 
    a.rootField1() 

    marshal(b) { 
     b.readField1(); // I want to move these calls ... 
     b.readField2(); 
     b.readField3();  
    } 
} 

这是重构为一个设计模式?或者只是重构。我在问,因为我倾向于这种类型的重构,并想给它一个名字。如果我将该方法编组移动到一个委托类,我想这是委托。

+2

名称为“Extract method”,它不是设计模式,但可能被称为“重构模式”,因为该模式不存在于最终结果中。提取方法的动作遵循该模式。 –

+0

它看起来也像'门面'一样,经典的门面。在这种情况下,编组方法是一个更大的代码体的简化界面。 http://en.wikipedia.org/wiki/Facade_pattern –

+1

不,门面是非常不相关的。它适用于您的外部API与您的目的有些不匹配的情况,因此您需要构建一个代码的外观层,以适应API的界面以更好地适应您的目的。 –

回答

0

这不是一个desgn模式。充其量,它是“多态性”,这是OOP的基本特征。您可以将处理添加为对象a的类A和对象b的B的方法。嘿将分享接口

interface Marshall { 
    void marshall(<...>); 
} 

...但是是不同的类。

一旦你这样做,明显的DP是使用同时包含A和B的复合,并做

composite.marshall(<....>); 
0

您有什么还没有一个设计模式,但辅助方法。