【问题标题】:Design pattern for generating multiple documents based on data sources基于数据源生成多个文档的设计模式
【发布时间】:2017-04-08 05:18:25
【问题描述】:

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

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

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

如果产品类型是 ProductType.CAR,则文档还应包含 Car 模型(由 CarService 提供,并给出 ProductService 先前获取的产品 ID)。

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

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

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

我主要是在 Bridge 和 Builder 之间存在疑问......但到目前为止我无法让它与他们中的任何一个一起工作。我总是在 DocumentWriter 中加入一些业务逻辑;或者有些电话只是 NoOp。

【问题讨论】:

    标签: oop design-patterns


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      考虑将Proxy 用于延迟获取部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多