在我的应用程序中,我需要按照一定的步骤顺序从数据库加载数据,例如加载所有客户,然后加载所有订单并加载产品等。但是,在一两种情况下,订单是不同的,也是需要加载其他数据。
abstract Model
{
public void load(Configuration config) {
loadCustomers(config);
loadOrders(config);
loadProducts(config);
}
}
ConcereteModel1 extends Model {
doesn't overload load
}
ConcreteModel2 extends Model {
public void load(Configuration config) {
loadProducts(config);
loadOrders(config);
loadCustomers(config);
loadAdditional(config);
}
}
我最初的想法是,如果我可以使用Command模式(使用加载命令方法)来实际加载客户,订单或产品,并使用责任链来绑定命令。这是一个好方法,还是我在这里设计工程?
任何示例代码都非常有用。 感谢您的任何建议
答案 0 :(得分:1)
这听起来是您的任务的正确选择。或者,您需要为数据加载步骤创建基类,并针对特殊情况以不同方式实现它。
这一切都取决于确定你有特殊情况的最简单方法。
有关代码示例,请参阅this description of Chain of Responbsibility。
答案 1 :(得分:0)
我认为你必须注意:
您正在使用技术方式(例如命令模式)隐藏域规范(“......但是,在一两个案例中......” )。
我建议开发出第二种解决方案。