【问题标题】:Help with design problem (extending a generic inteface)帮助解决设计问题(扩展通用接口)
【发布时间】:2011-02-05 12:52:22
【问题描述】:

我是一个学生项目的一部分,我们要为一家使用 Java EE 的公司开发产品。作为项目中的“首席架构师”,我负责编写一个良好的设计,该设计应该可以灵活地进行进一步扩展。

背景信息:我们将开发一个具有拖放 GUI 的网站,该网站具有连接数据源和数据操作以对特定数据执行的可能性。 GUI 应该是通用的,并且可以与即将推出的产品集成。这意味着我们不能对表示层中的实现进行编码。相反,我们将使用一个接口来定义对所有类型的产品都可能进行哪些类型的数据操作。但是,每个产品也可能具有特定于产品的数据操作(从而使用更多方法扩展接口)。

我在上面的场景中遇到的问题是,我看不出我们如何将这些“产品特定的数据操作”传递给 GUI,并说除了通用接口之外,我们还拥有这些数据操作操作。 ..

现在我与公司中一些更有经验的程序员进行了讨论,他们告诉我有一个通用的解决方案来解决这个问题 - 更具体地称为“观察者模式”。他们在白板上画了[1] 之类的东西,并解释说可以“注册”到第三方(getApplicationContext),这反过来又可以传达我们的产品特定界面。他们解释说,这是摆脱那些讨厌的循环依赖的常见问题。

我现在已经了解了观察者模式及其工作原理,但我仍然不明白我应该如何解决设计问题。有人可以尝试解释在我的特定情况下会如何吗?我没有真正的问题理解它如何与“主题”和“观察者”一起工作。

这是我们使用特定产品参考的设计的 UML 图。这是不受欢迎的,也是我们想要解决的问题。

(也许我错了……)

很抱歉,由于我是新用户,所以无法将图片更改为正确的图片...这是更新后的 UML 图的链接:

【问题讨论】:

  • 问题是不是太不清楚了?我认为这应该是软件设计中反复出现的问题……我只是在努力做好工作,学习那些我不明白的东西,以便在接下来的一周里尽可能地表现出色。

标签: oop design-patterns jakarta-ee observer-pattern


【解决方案1】:

看来您正在寻找的是Model View Controller 设计模式。 Observer pattern 只是这个设计模式的一部分。在wikipedia article 上有一个关于使用 Java Servlet 和 JavaServer Pages 从 Java EE 执行此操作的简短描述。

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    相关资源
    最近更新 更多