2008年4月28日 星期一

O08 我的設計準則(2)──動靜分離

撰寫程式時如果沒有適當切割與分類,會造成不同層次的動作都集中到一個類別,為了避免層次不清的混雜,所以希望可以遵循分層負責的準則切分出每一層該做的事。

在元件裡的動作雖然具有明確的目標,但是為了達成元件方法的目標,還是必須用正確的順序執行應該執行的小動作,所以這裡會依照動態的執行流程與靜態的固定動作加以分類,將不同的類型的東西封裝在不同的地方;也就是Flow與Action。

有許多人(包括我)奉行MVC的設計,但是在本質上來說MVC的組成會進一步劃分為MVFA。製作流程圖時是依照Use Case的流程串連各個負責實作的Activity,我是進一步把這個觀念應用在程式內部,以強制將流程與動作分離用來解決流程時常異動的問題。我的目標是在實作Flow的部分時,可以藉由週邊的Interface快速地知道可以使用的物件與動作全部有哪些,在幾乎不同多作學習慣情況下快速改變執行的邏輯。

另外不管是在系統上或是元件內,動作的實作是Activity所描述的,而且特定功能的動作會封裝在同一個Component。將流程與動作分離時,如果系統的精髓在流程,則把流程部分掌握在自己手中,將動作部分外包給其他公司開發;反之如果Component裡有設備或邏輯的機密,則將流程部分拿去外包而將動作部分留下來,如此將有助於商業機密的保護。

沒有留言:

張貼留言