2010-03-04 64 views
2

说我有东西的GUI Java项目,它模拟的ATM机,和我有类如:这个Java设计模式的名称是什么?

- RegisterWindow 
- LoginWindow 
- MainAccountOptionsWindow 

等等,所有的类都集中围绕在面板/窗口,而不是正常的面向对象的设计。有人告诉我,这是一个具体的设计模式,或许真的开始E,我只是记不起他们现在说!有人知道吗?这种设计方法通常不好吗?

感谢

+0

根据您提供的信息,实际上不可能提供这个问题的答案:) – willcodejavaforfood 2010-03-04 14:48:09

回答

5

这取决于事件如何/间传播的窗口。如果说MVC和Java有很多人实际上是指的是Sun的“model 2”MVC,但是有很多不同类型的MVC,简单地说“MVC”并不意味着太多情况并非总是如此,远非如此。

你的情况可能 HMVC/PAC的变化,但我不能肯定地告诉你,因为只粘贴相关视图名称:HVMC是独立程序员不知道老得多“PAC”技术的发现。 PAC是HMVC的在于,在PAC视图不能直接在模型注册回调更严格的子集(每个通知必须通过槽控制器,在HVMC在一些情况下,控制器可以被旁路)。

200KLOC codebase在哪里它的PAC无处不在(所以更严格的HMVC子集)。

你要知道,如果你确实使用任何MVC的变化,它是不是“坏设计”为它工作得很好,但它肯定不是“OO”。在一个真正的面向对象的设计对象知道如何绘制自己和MVC,顾名思义,解耦你的对象,这是不是在OO所有视图。这实际上是面向对象的反论点。谷歌可以找到关于该主题的很多文章。 (简称:解耦可以是一个非常好的事情,但脱钩并不意味着“OOness”)。

除此之外,“完全不是OO”通常不是问题,因为99%的Java程序不是OO:它们是使用可能被使用的语言编写的美化程序性程序做OO但通常不是。

顺便说一下,如果你在维基百科上查看MVC实现的语言列表,你会发现它们中的很多实际上不是OO语言(甚至不是混合OO语言)。

+2

upvote for“美化程序程序...” – 2010-03-04 14:00:13

0

它看起来像你使用好老MVC模式(模型/视图/控制器),其中的数据计算和数据呈现分离。 视图似乎是Swing窗口这一事实并不重要 - 它可能是JSP或Excel摘录...

+0

不,看起来像他有一堆窗户:) – willcodejavaforfood 2010-03-04 13:16:12

+0

如果xxxWindow类包含业务逻辑(这_seems_是这种情况),那么这绝对不是MVC。 – Kris 2010-03-04 13:35:44

1

有在这种情况下很多可能性:

  • 模型 - 视图 - 控制器
  • 表示 - 抽象 - 控制
  • 模型视图演示
  • 模型视图视图模型
  • 多层架构(常三层)
  • 面向服务的架构
  • 裸体物品

查看此article了解更多信息。

0

模型视图控制器。