2007年8月17日 星期五

D06 Component的設計(1)──Implementation


這張圖是我所認定一個元件應具有的完整層次。Component內部的設計同樣應用MVC的想法來決定它的層次。由於Component不需要View,而且處理的Model較為單純,所以切割的層次同樣地比較簡單。

一個完整的元件就等同於一個JDK的Package,應該要有屬於自己的定義Interface、實作Class、處理的Model與拋出的Exception,經由封裝這些種類的物件在Component裡,我們讓Component成為完全與其他Component絕對無關的獨立物件,在使用與抽換上可以不需去擔心它的關連而直接使用。

Interface只是定義而沒有任何程式,因此在進入Component的一開始,我們就需要一個Class的存在來實作Interface裡的定義,Implementation的工作便是如此。我把Implementation定義為Component內部Factory Pattern的實作,經由傳入的參數自動決定接下來應該由哪些程式來實作,如此可以減少系統的設計負擔。如果這個Component的使用必定要經過Factory的方式,我們可以把每次都需要的部分封裝起來。

Implementation的作用只是Component的入口,我們設計時可以簡單讓Component Controller去實作Component Interface,那麼Implementation的責任就可以簡單到只是以Factory的方式叫起適當的實作,然後把每個介面的方法對應到Controller的方法而已。

沒有留言:

張貼留言