在我的应用程序中,我需要按照一定的步骤从数据库加载数据,例如加载所有客户,然后加载所有订单和加载产品等。然而,在一两种情况下,顺序不同,还需要加载额外的数据。
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);
}
}我最初的想法是,如果我可以使用命令模式(具有加载命令方法)来实际加载客户、订单或产品,并使用责任链来捆绑命令。这是一种很好的方法,还是我在这方面做得太过了?
任何示例代码都会非常有用。感谢您的建议
发布于 2012-12-03 16:17:30
这听起来像是您的任务的正确选择。或者,您需要为数据加载步骤创建一个基类,并针对特殊情况以不同的方式实现它。
这完全取决于确定您是否有特殊情况的最简单方法。
有关代码示例,请参见this description of Chain of Responbsibility。
发布于 2013-05-02 16:50:15
我认为你必须要注意:
您正在使用技术方法(例如,命令模式)来隐藏域规范 ("...然而,在一两种情况下...“)。
我建议开发一个引起第二个问题的解决方案。
https://stackoverflow.com/questions/13675437
复制相似问题