2009年2月3日 星期二

T12 Component必須直接或間接繼承基本Component

將眼光放到Component層級,並運用Class的思維來看待Component,可以發現元件的本質其實就等同於我們現在常用的Class。在使用一個Class實作一個Component的情境下,重心多放在如何達成功能的目標,使用機制的互動會因程式碼都在同一個Class內實現而被忽略,繼承的考量也僅會著眼於功能的重用。

為了未來的一些好處而把元件內部切割為六個部分的同時,必須保證所有Component都有同樣的切割方式與運作模式。在建立基本Component之後就得要求每一個Component同樣都必須具備六個部分,而且每一部分都要繼承自基本Component。

倘使Component因功能上的需要必須繼承其他的Component,那麼就會形成上圖裡的情形。這裡的要求是每個Component都要具有自己的Implementation、Flow、Action、Model、Properties與Exception六個部分,而且全部都要繼承自Parent Component的每一個對應部分!

若某一層級沒有建立起對應的Abstract Class,初期可能不會有什麼問題。但是只要遇到屬於那個消失層級應負責的動作時,那些動作找不到放置的地方就必須依附在旁邊的Class裡,在需要切割使用的狀況下,很可能切開的部分多包含或少包含應作的動作而使得系統出現問題。

基本Compoent負責的是六個切割部分的合作,負責的僅是最底層的內部合作;Component的設計就如同一般元件設計,著重在功能的實作。當所有元件內的程式碼都分類放置妥當後,才有可能依同樣的規則寫出可以適用在全部Component的工具。

沒有留言:

張貼留言