2017-03-17 56 views
1

我的程序我使用了由幾個類組成的gui和核心包使用MVC模式。爲了減少核心類和Gui包之間的耦合,所有類都通過協調核心包中的類Facade與Gui包進行通信。 在Gui包中,我有一個主要的Frame類,根據應用程序的「階段」添加其他Jpanel。例如,LoginPanel在用戶登錄後被MenuPanel替換。所有這些面板都被聲明爲一個擴展JPanel的獨立類。
問題是,我應該使用Gui包中的一些協調類來與核心包中的Facade協調類進行通信嗎?在這個階段,我的框架或Jpanels將消息發送到核心軟件包中的協調類,我想如果它的好主意是通過Gui包來協調類,這將代表框架和其他JPanel與核心類進行通信。MVC,減少Gui和核心包之間的耦合

+0

這個問題很大程度上取決於實施細節。在某些時候,你需要對如何與代碼的各個方面進行交流有一些「想法」,他們需要能夠相互交流,你想要做的就是讓它變得簡單可以改變這些API /類的底層實現,而不需要改變使用它們的類。您可以使用各種技術,具體取決於您想要達到的目標。請記住,Swing已經是(一種類型的)MVC,但沒有什麼能阻止你將它再次包裝到另一層 – MadProgrammer

回答

0

此迴應不是關於Swing練習,而是避免耦合和增加內聚力的一般方法。

爲了降低耦合, 您需要按照2個戰略按標準Java沒有任何框架到位:

1. Code to Interfaces instead of Concrete implementations 
2. Try to implement Factory design pattern