【发布时间】: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