【发布时间】:2015-03-20 17:20:00
【问题描述】:
我有一个混蛋模板方法实现。它不是具有子类实现的基类,而是 util 类上的静态方法,它接受它委托的接口。我想将其重构为更常见的模式,这样我就可以停止传递 Domain 类。
我认为第一步是将模板转换为对象方法,但是对于如何将我的 5 个 Helper 实现(未显示)移动到新模板对象的子类中,我失去了灵感。
public interface Helper
{
void doFirstThing(Domain d);
void doSecondThing(String id);
}
public class UtilClass
{
public static void template(Domain d, Helper h, String who)
{
//begin database transaction
try
{
//some logic
h.doFirstThing(d);
//more computation
h.doSecondThing(d.getId());
//database commit();
}
finally
{
//if transaction open database rollback();
}
}
}
public class Domain
{
public String getId()
{
return "value";
}
}
【问题讨论】:
标签: design-patterns refactoring