【发布时间】:2019-02-07 09:49:48
【问题描述】:
当我们尝试迁移到新系统时,我必须创建一个层,根据某些设置从三个不同的来源提取数据,并且我们仍然希望在切换之前保持旧流程。
假设我们需要获得一个包含次要重型 POJO 的整合 POJO。
class X {
Y1 obj1;
Y2 obj2;
Y2 obj3;
...
}
我已经制作了一个可以调用下游服务并引入数据的层。我想要的是 Y1 和 Y2 和 Y3 中的每一个都有自己的填充器,它们可以由来自该层调用的不同服务的不同类型的 POJO 构建。有没有一种优雅的方法可以做到这一点,以便以后我只需要添加代码。另外,我想尽可能地遵守 SOLID 原则。
我想到的一种方法是为每种类型的 Y 制定一个策略模式,我们根据服务及其传递的 pojo 选择要转换的策略。
但这会导致 X 中每个新的复杂 Y 的类繁荣,我将不得不编写多个策略,这基本上是一个简单的事情的很多类。
【问题讨论】:
-
我只会得到
obj1、obj2和obj3,然后在最后创建一个完整的X,而不必绕过一个信息不完整的对象。跨度> -
服务层是抽象的,它完成了所有的工作,所以我们不必担心传递不完整的 X
-
我认为您正在寻找的是装饰模式。
-
嗨@MukulAnand:你能解决上述问题吗?即使我有相同的要求,您能否分享使用的设计模式
标签: java design-patterns dto