用于基于数据源生成多个文档的设计模式

时间:2017-04-08 05:18:25

标签: oop design-patterns

我正在做一个可以生成多种类型文档的软件。

假设它可以为美国生成包含XML的以下属性的装运文档:

  • 收件人全名(由CustomerService提供)
  • 收件人地址(由AddressService提供)
  • 产品(由ProductService提供)

如果产品类型为ProductType.CAR,则文档还应具有Car模型(由CarService提供,前提是ProductService先前提取的产品ID)。

我还希望能够生成另一个使用相同服务的文档,但是以不同方式显示信息(例如,仅使用姓氏而不是全名)。

我的目标是尽可能地提取这些信息(即,我不想通过调用文档的所有可能信息源来开始生成文档 - 主要是因为这需要我设置层次结构由于1个信息的调用可能依赖于另一个 - 在上面的示例中,如果产品恰好是汽车,我需要提供从ProductService获取的产品ID到CarService。

这看起来像某种设计模式吗?

我很怀疑Bridge和Builder之间......但到目前为止我无法使用它们中的任何一个。我总是在DocumentWriter中找到一些业务逻辑;或者只是一些NoOp的电话。

2 个答案:

答案 0 :(得分:1)

我会用策略来解决这个问题。对于每种类型的文档,一个实现:

http://www.dofactory.com/net/strategy-design-pattern

答案 1 :(得分:0)

考虑使用Proxy来获取延迟抓取部分。