2013-05-22 173 views
0

最初我有按鈕的視圖保存命令,這些按鈕計算出來並在推入後將文本輸出到JTextAreas上。生成的內容取決於返回的值。MVC體系結構實現

我擔心我不遵循標準的MVC架構,在控制器內設置下面的文本。

目前,我改變了我的命令按鈕,進入我的控制器所以

private class ReadActionListener implements ActionListener { 
    public void actionPerformed(ActionEvent l) { 
    /* there is other code in here, which results in setting text its not 
     just a set text button*/ 
    /*interactions with model etc etc, outcome true? setText JTextArea like below*/ 
       view.variable.setText("hi there"); 
    } 
} 

我應該爲視圖控制器內部設置文本,或者這是打破標準MVC架構?

感謝,

吉姆

+0

設置您的視圖數據,如果你想讓它反映的模型,然後*您可以通過模型數據* ,然後*然後*使用控制器設置視圖數據。 – Jimbo

回答

0

在MVC中,該模型是

模型包含多個對象:域對象,服務和映射器。您可以在this post中閱讀更多內容(儘管在PHP中,這些概念仍然具​​有實質性)。

這就是說,控制器處理來自用戶的輸入,模型,然後該數據返回到控制器內將其發送到相關的對象 - 然後控制器將其發送到該視圖它處理向用戶顯示的邏輯。

觀察者模式非常有趣,上面的Koen鏈接是一個很好的鏈接。我救了這個片段從某處而回上SO:

對主題通話狀態設定操作通知他們改變了 對象的狀態之後。這種方法的優點是客戶沒有 記得調用通知主題。缺點是幾個連續的操作會導致幾次連續的更新,這可能是效率低下的。

讓客戶負責在正確的時間致電通知。這裏的優點 是客戶端可以等待觸發更新,直到系列狀態更改已經完成,從而避免不必要的中間更新。 缺點是客戶有觸發 更新的額外責任。這使得錯誤更有可能,因爲客戶可能忘記調用Notify。

這個古老但仍然有效觀察者模式的例子可能仍然是有用的:在控制器http://javanook.tripod.com/patterns/observer.html