【发布时间】:2023-03-23 18:20:02
【问题描述】:
我是设计模式的新手,我有以下需求:我有一组由 DTO 对象表示的事件,例如:LateEventDTO、RescheduleEventDTO 等。这些 DTO 对象中的每一个都有自己的一组属性。现在,我有一个名为 EventDTO 的抽象类,所有不同类型的 DTO 对象(如 LateEventDTO、RescheduleEventDTO 等)都扩展了 EventDTO。
我会将这些 DTO 对象之一传递给我的 ui 层(jsp 页面),它会检查它是什么类型的 DTO 对象。像这样:
if(event instance of Late){
//handle late event and display it's content
}
else if(event instance of Reschedule){
//handle reschedule event and display it's content
}
等等等等。
我想要的是让表示层忽略不同类型的 eventDTO 对象。它需要做的就是获取一个通用对象并显示它的内容。它不应该像我上面显示的那样明确检查它的类型。
对于这种情况,最好的设计模式是什么?
【问题讨论】:
-
我会考虑策略模式
-
你应该在 IMO 重新设计东西,这样你就不会遇到这个问题:你的 DTO 只有 1 个接口,所以你不需要检查的 instanceof。
标签: java design-patterns