Java 这是一种常见的设计模式,可能是委托模式吗?
我很好奇这是什么样的设计模式 我有一个方法,比如dao.read() 假设我将read方法重构为:Java 这是一种常见的设计模式,可能是委托模式吗?,java,design-patterns,Java,Design Patterns,我很好奇这是什么样的设计模式 我有一个方法,比如dao.read() 假设我将read方法重构为: dao.read(a) { marshal(a.b) a.rootField1() marshal(b) { b.readField1(); // I want to move these calls ... b.readField2(); b.readField3(); } } 这是重构成设计模式吗?或者只是重
dao.read(a) {
marshal(a.b)
a.rootField1()
marshal(b) {
b.readField1(); // I want to move these calls ...
b.readField2();
b.readField3();
}
}
这是重构成设计模式吗?或者只是重构。我之所以这么问,是因为我非常喜欢这种类型的重构,并想给它起个名字。如果我将该方法封送移动到委托类,我猜它是委托。它不是设计模式。充其量是“多态性”,这是OOP的一个基本特性。您可以将处理添加为对象a的类a和对象B的类B的方法。他们会分享这个界面
interface Marshall {
void marshall(<...>);
}
接口{
无效马歇尔();
}
…但不同的阶层
一旦你这样做了,明显的DP将是使用一个同时包含a和B的复合物,并且
composite.marshall(<....>);
composite.marshall();
您拥有的不是设计模式,而是辅助方法 名称是“Extract method”,它不是一个设计模式,但可能被称为“重构模式”,因为该模式在最终结果中不存在。提取一个方法的行为遵循这个模式,它看起来也像“facade”,即经典的facade。在本例中,封送处理方法是指向更大代码体的简化接口。不,门面是完全不相关的。它适用于一种情况,即您有一个与您的目的不匹配的外来API,因此您构建了一个代码的外观层,该层可以调整该API的接口以更好地满足您的目的。
composite.marshall(<....>);