帮助解决设计问题(扩展通用接口)

时间:2011-02-05 12:52:22

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

我是学生项目的一部分,我们将为使用Java EE的公司开发产品。作为项目中的“首席架构师”,我负责撰写一个优秀的设计,该设计应该具有灵活性,可以进一步扩展。

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

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

现在,我与公司的一些经验丰富的程序员进行了讨论,他们告诉我这个问题有一个共同的解决方案 - 更具体地说是“观察者模式”。他们在白板上绘制了类似[1]的内容,并解释说可以“注册”给第三方(getApplicationContext),而第三方反过来可以传达我们的产品特定界面。他们解释说,这是摆脱那些令人讨厌的循环依赖的常见问题。

我现在已经看过观察者模式以及它是如何工作的,我仍然没有真正理解我应该如何解决设计问题。有人可能会尝试解释在我的具体情况下会如何产生?理解它如何与“主题”和“观察者”合作,我没有真正的问题。

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

(也许我错了......)

很抱歉,我无法将图片更改为正确的图片,因为我是新用户...以下是更新的UML图表的链接:

http://i55.tinypic.com/2mbfno.png

1 个答案:

答案 0 :(得分:0)

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