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

Oop 基于数据源生成多文档的设计模式,oop,design-patterns,Oop,Design Patterns,我正在做一个软件,可以生成多种类型的文件 假设它可以为我们生成包含以下XML属性的装运文档: 收件人全名(由CustomerService提供) 收件人地址(由AddressService提供) 产品(由ProductService提供) 如果产品类型为ProductType.CAR,则文档还应包含汽车型号(由CarService提供,提供产品id的是ProductService之前获取的产品id) 我还希望能够生成另一个使用相同服务的文档,但以不同的方式显示信息(例如,仅显示姓氏而不是全名

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

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

  • 收件人全名(由CustomerService提供)
  • 收件人地址(由AddressService提供)
  • 产品(由ProductService提供)
如果产品类型为ProductType.CAR,则文档还应包含汽车型号(由CarService提供,提供产品id的是ProductService之前获取的产品id)

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

我的目标是尽可能地获取这些信息(也就是说,我不想通过调用文档的所有可能信息源来开始生成文档-主要是因为这需要我为调用设置层次结构,因为一个信息可能依赖于另一个信息-在上面的示例中,如果产品碰巧是一辆汽车)

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


我对Bridge和Builder之间的关系有很大的怀疑……但到目前为止,我无法与他们中的任何一个一起工作。我总是在DocumentWriter中使用一些业务逻辑;或者使用一些仅仅是NoOp的调用。我会用策略来解决这个问题。对于每种类型的文档,都有一个实现:

考虑将其用于延迟获取零件