2007年9月26日 星期三

E18 Project Controller(4)──Runtime Environment

把元件的觀念放大到系統,此時檢視所有的輸出輸入物件設計:Context等同於CompomentModel、Flow Engine等同於ComponentController、Flow Step等同於ComponentAction、傳回值的作用相當於拋出ComponentException。最後需要的是作用等同於ComponentProperties的Runtime Environment。

為了要讓每次的執行都是獨立的,在執行之前應該要有各自的初始化動作,另外就是提供執行時需要系統設定的內容存放的地方,這些就是Environment的存在意義。使用Environment時,可以在每次的執行方法中傳入,或是同樣包含在Context裡頭。

Environment的設計同樣應該是介面,依需求與設計陸續加上所需要的參數存取方法;實作的時候一樣繼承Basic Data Model,並衍生出以字串的保留與重現動作。有時系統的參數是存放在特定的機制之下(例開發Eclipse的plugin時會有它自己用的Project Properties),這個時候除了實作特定機制的用法外,還要再做出一組基本類別的以達到動態儲存與回復的目的。

設計裡的傳遞物件最好不要使用singleton的設計,也不要用方法設定到Flow Engine或Controller中存放再取得,以避免相依性過高,切記要在使用之前才傳入該次所要使用的。

沒有留言:

張貼留言