2008年4月3日 星期四

N03 Compoent與API的判斷與佈置

在我而言,判斷的準則其實很單純:就看程式模組處理後是否在物件內保存著狀態。單純地處理傳入的資料並傳回者為函式,除了處理之外還將會影響本身內部狀態者為元件。例如:把檔案讀出為字串應是API、讀取檔案後放置資料的物件就屬於元件。判斷類型後再根據其應用範圍決定它的reuse層次,接著再依照功能放到所屬的區域裡。

在架構上來說,元件與函式都與專案無關。專案之下先是元件,再往下是API,最下面是Java API或是Third Party API,使用的方式是上層的可以使用下層且可以使用同一層內的物件(不可造成循環使用)。Third Party API有時也會被列入到自己的元件庫管理。

在元件的使用上,雖然可以直接呼叫元件提供的方法,但是在系統裡對於元件的使用結果通常會有自己的邏輯處理,這些元件專用的邏輯處理為了避免散落各處,最好是規定一個地方來放置。也因此,我建議對於元件的使用要用以下的佈置。

一個典型的範例在於要處理印表機的低階控制碼:元件動作管理控制碼的輸入、元件動作控制負責印表機對於每個控制碼的反應,這兩者都屬於元件層;專案對於列印的要求是組成固定的格式並控制進退紙與列印,這些複合元件動作就交由元件動作結果控制與元件資料轉換來處理。

沒有留言:

張貼留言