2008-08-16

利用 Plugin 的架構做模組應用


這是我很久之前在開發所有的類別架構,主要是以 MoreModile 類別為主作延伸應用,這個繼承方式並不是一個很好架構,因為 Base 的 MoreModile 常常會有異動的可能,而且子類別也不是完全以父類別為基礎,有時候只需要部份的成員函數,這樣的架構在之前的開發上變得綁手綁腳,怕改錯一個東西造成其他的類別也受到牽連。


後來想到這樣的開發架構,由一個主要的 DataLoad 類別負責整體的處理,再選擇需要 Plugin 那些 Module,這個方法讓架構變得更有彈性,且整體的牽連性也不至於像之前那麼嚴重,而且還有預留一個 Plugin 的虛擬類別,提供額外的修改空間,再實行的過程中也明顯的加快日後的開發速度。


這是目前的類別架構圖,每一個新類別都可以選擇所需的 Module,或者實作一個特定需求的虛擬類別,讓基礎類別有更多的應用,且實作上也具有很高的彈性。
這樣的架構並不是一個標準的類別繼承架構,正常來說應該利用成員物件的方式去執行 Plugin 這樣的架構,但可惡的是 JavaScript 有一個麻煩的事件問題,物件再做事件整合上其實並不是那麼快樂,常常會因為參數的傳遞及 this 的處理造成不少困境,所以使用標準架構只會讓開發更複雜。

0 回應: