2010-03-04 63 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

模型視圖控制器。