2007年9月17日 星期一

E09 Project Data Model(1)──向上的Data Model延伸

雖然Basic Data Model已經涵蓋了我們放置資料的需求,但那只是最基礎的set與get動作;在Data Model需要放置的資料數量很多時,每種資料的存放都會有各自的方式。如果我們不再為專案使用的資料包裝一層方便操作的存取方法,那麼撰寫程式的人必須去記得每一種需要資料的存取法。

抽取與封裝的動作,除了把共用的部分放到通用的地方之外,另一個的功能是把一些較複雜的邏輯隱藏在裡頭,讓使用的人只需要記得呼叫的入口就能正常使用。只記一個入口當然要比記數條規則輕鬆且不易出錯;我們只需要犧牲一點人力去包裝這類的規則,就可以讓所有撰寫程式的人在專案裡所有可套用的地方節省開發的時間,同時又把未來可能改變的影響封裝起來,這鐵定是划算的。

設計時把適合的資料定義在Project Data Model裡,同時為之準備getter與setter存取方法,記得要逐一宣告好而不要為了快而合併或短少。完整定義後的Project Data Model就可以提供給設計人員接著使用,實際上則繼承一個可以對應儲存方式的Basic Data Model直接使用元件提供的存取功能。這麼逐一把所有資料設計存放的資料模組後,就具有一組完全符合專案使用需求的Project Data Model了。

另外有一個重要功能必須同時實作出來:Project Data Model需要根據存放在Basic Data Model的某個值來產生該Project Data Model類別的實體。這種以Factory方式動態產生各種不同Data Model實體的功能將會讓專案的使用更加便利。

沒有留言:

張貼留言