2007年7月22日 星期日

C10 理論串接實作的瓶頸(4)──設計元件的層次

元件的設計就像政府機關處理流程的切割,系統的事件發生時應有一群元件來支援處理,每個元件有自己的特性,只做自己該做的處理。然而除了處理事件之外,每個單位都有自己的定位,規定了這個單位層級:有上下的垂直管轄單位與水平的同級單位。

系統的架構設計其實等同於政府機關單位的編排,我們必須根據事件的來決定該分給哪些元件處理,處理的同時也要決定元件所在的位置。原則上元件數量多時表示分工較精細,元件處理的內容會比較明確,但是會造成流程處理步驟數量的增多;數量少時流程處理較容易,但是元件的功能定義因處理的事件種類變多而相對地變得模糊。如何把元件正確地切割也是不容易做好的設計。

元件裡可能會使用其他元件的方法,這時他們處在垂直的關係;一個元件使用多個其他元件的方法時,那些被呼叫元件全部都處在水平的關係。元件之間的關係應該在決定使用時就決定其位置,包括與其他元件的合作關係。元件之間的關聯如果不固定,有時是垂直,有時是水平的話,會造成使用上的混淆;就如同人類的輩份般,該是長晚輩的關係就永遠是,該是同輩的關係也永遠是,如果同時具有的話,會被稱作“亂倫”。

系統的元件定位明確之後,如果同層級的元件已定義介面,那麼實作同層級介面的元件都可以任意抽換。想像一位老師需要三位同學來做某件事,“同學”在這裡就像介面一般,實際的物件是在班上就讀的“人”,三位同學的意思就是任何三位在班上就讀的人都行;在老師與同學之間設計介面就能夠隨意變更實際配合的人。

沒有留言:

張貼留言