建议选择合适的设计模式

Suggestion to choose proper design pattern

我被要求提供 a "deal service" that de-couples the user’s requests from the requests to the partners who provide rental rates. the service does so, by looking up a cache, and fetching whatever is missing in a long-running process.

的设计文档

我正在考虑哪种设计模式适合该软件。我不需要编写工作代码,只需要编写设计文档。

我在考虑中介者和享元设计模式的结合。

中介者模式定义了一个对象,它封装了一组对象的交互方式。调解器通过防止对象相互显式引用来促进松散耦合,它允许您独立地改变它们的交互。对象不是直接相互交互,而是请求中介器代表它们进行交互,从而实现可重用性和松散耦合。

另一方面,Flyweight Pattern 旨在控制对象创建,即应用程序中的对象具有很大的相似性和相似的种类,并为您提供基本的缓存机制。它允许您为每种类型创建一个对象(此处的类型与该对象的 属性 不同),如果您要求具有相同 属性 的对象(已创建),它将 return 你是同一个对象而不是创建一个新对象。

你有更好的建议吗?

听起来更像是流程的编排。我会简单地构造 VO 并将其传递给编排器,然后在这里,我将使用命令模式(如果需要,还有抽象工厂),其中每个命令都有责任调用合作伙伴服务和 return DealsVO/TO/DTO(不管那是什么!)。我还会使用构建器模式来构建您对每个合作伙伴服务的请求,使所有设置者都远离图片,从而使请求不可变。