2007年8月12日 星期日

D01 功能為經,層次是緯──定位系統的所有程式

對於系統而言,功能需求是一定要完成的事項。若把系統視為一個長方形的圖形,我們可以想像所有Use Case列示在左邊,再將長方形依Use Case的數量水平等分,每一個小的長方形就約略等於完成Use Case的程式。如果只把完成Use Case視為工作目標,那麼每一個小長方形都是密閉的黑箱,裡頭設計的品質無從得知,因而亳無取代性可言。
在架構設計時,我們規定了MVC等等的層次,要求每個Use Case都必須經由特定的層次做特定的事來完成功能。把層次依序放到系統長方形的上方,並將長方形垂直等分,我們可以看到系統就像豆腐一樣被切得井井有條。
再來在幾個重要的層次之間,甚至設計時認為同一層次中應該再切分數個合作的層次的地方,加上Façade Pattern,就會成為下面的圖。集合為Façade的好處很類似定義Interface,使得進入下一個層次時必定得經過這道關卡,如此一來無論在硬體上或模組上都使得切割變得容易許多。
最後,我們設計的所有程式都會落在系統長方形的任何一個小格裡,而且也應該在小格裡。到此,所有的程式與它內部使用的其他程式都有自己放置的地方與應盡的責任,加上每個小格裡對外的地方都設計了Interface,被封裝後的小格同樣可以快速地抽換規格相同但功能有差異的其他程式。

沒有留言:

張貼留言