我想知道的是,如果從文件中加載數(shù)據(jù)是控制器或模型的責(zé)任?
對我來說,模型只負(fù)責(zé)帶來代表應(yīng)用程序的業(yè)務(wù)邏輯的所需的數(shù)據(jù)結(jié)構(gòu)。
從任何源加載數(shù)據(jù)的操作應(yīng)該由Controller層完成。您也可以使用存儲(chǔ)庫模式,這可以幫助您在從視圖中訪問數(shù)據(jù)時(shí)從源類型中抽象出來。在此實(shí)現(xiàn)之后,您不應(yīng)該關(guān)心存儲(chǔ)庫實(shí)現(xiàn)是否正在從文件、SQL、NoSQL、Webservice加載數(shù)據(jù).
名稱的觀察者列表將存儲(chǔ)在控制器或模型中?
對我來說,觀察者列表是視圖的一部分。它是一種可以綁定到JavaFX控件的數(shù)據(jù)結(jié)構(gòu)。因此,例如,可以使用模型中的String填充一個(gè)觀測者List,但是觀測者List引用應(yīng)該是某個(gè)View類的屬性。在JavaFX中,它非常樂意將JavaFX控件與由來自模型的域?qū)ο笾С值目捎^察屬性綁定。
你也可以看看視圖模型概念..對于我來說,一個(gè)由POJO支持的JavaFX bean可以被看作是一個(gè)視圖模型,您可以將它看作一個(gè)模型對象,可以在視圖中顯示。因此,例如,如果您的視圖需要顯示從兩個(gè)模型屬性中計(jì)算出來的總價(jià)值,那么這個(gè)總價(jià)值可能是視圖模型的一個(gè)屬性。此屬性將不會(huì)持久化,并且將在顯示視圖時(shí)進(jìn)行計(jì)算。