2

在我的应用程序中,我需要按一定顺序从数据库加载数据,例如加载所有客户,然后加载所有订单并加载产品等。但是,在一两种情况下,订单不同,也需要加载附加数据。

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);
   }
}

我最初的想法是我是否可以使用命令模式(使用加载命令方法)来实际加载客户、订单或产品,并使用责任链来捆绑命令。这是一个好方法还是我在这里过度工程?

任何示例代码都会非常有帮助。感谢您的任何建议

4

2 回答 2

1

这听起来像是您的任务的正确选择。或者,您需要为数据加载步骤创建一个基类,并针对特殊情况以不同方式实现它。

这完全取决于确定您有特殊情况的最简单方法是什么。

请参阅代码示例的责任链描述。

于 2012-12-03T08:17:29.790 回答
0

我认为你必须注意:

您正在使用技术方式(例如命令模式)来隐藏域规范(“......但是,在一两种情况下......”)。

我建议开发一个出现第二个的解决方案。

于 2013-05-02T08:50:15.400 回答