說我有東西的GUI Java項目,它模擬的ATM機,和我有類如:這個Java設計模式的名稱是什麼?
- RegisterWindow
- LoginWindow
- MainAccountOptionsWindow
等等,所有的類都集中圍繞在面板/窗口,而不是正常的面向對象的設計。有人告訴我,這是一個具體的設計模式,或許真的開始E,我只是記不起他們現在說!有人知道嗎?這種設計方法通常不好嗎?
感謝
說我有東西的GUI Java項目,它模擬的ATM機,和我有類如:這個Java設計模式的名稱是什麼?
- RegisterWindow
- LoginWindow
- MainAccountOptionsWindow
等等,所有的類都集中圍繞在面板/窗口,而不是正常的面向對象的設計。有人告訴我,這是一個具體的設計模式,或許真的開始E,我只是記不起他們現在說!有人知道嗎?這種設計方法通常不好嗎?
感謝
這取決於事件如何/間傳播的窗口。如果說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語言)。
upvote for「美化程序程序...」 – 2010-03-04 14:00:13
它看起來像你使用好老MVC模式(模型/視圖/控制器),其中的數據計算和數據呈現分離。 視圖似乎是Swing窗口這一事實並不重要 - 它可能是JSP或Excel摘錄...
不,看起來像他有一堆窗戶:) – willcodejavaforfood 2010-03-04 13:16:12
如果xxxWindow類包含業務邏輯(這_seems_是這種情況),那麼這絕對不是MVC。 – Kris 2010-03-04 13:35:44
它可能是Model View Controller實現的一部分。
其他相關模式是
你可能要考慮尋找Observer pattern,只是一個想法
模型視圖控制器。
根據您提供的信息,實際上不可能提供這個問題的答案:) – willcodejavaforfood 2010-03-04 14:48:09