Part-6: 架構設計的成功案例分享
一 案例:重構PhoneGap的架構和代碼
1、議題:PhoneGap目前只搭配HTML5的Web App
如何重構PhoneGap的架構和代碼
讓PhoneGap也能搭配一般的Native App
2、現況:目前PhoneGap的架構設計
HTML5 & PhoneGap可以讓UI更容易跨平台
其依賴Browser和PhoneGap的插件<T>來吸收平台的差異化
如果插件很多時,PhoneGap裡的PluginManager負責管理之
UI事件是從WebView傳送到PhoneGap的插件<T>
3、目標:
即使不采用HTML5,也能使用PhoneGap來管裡插件
一旦不使用HTML5,PhoneGap就不再搭配WebView
於是,PhoneGap轉而搭配一般的View,如Button等
UI事件(Event)改從一般的傳送到PhoneGap的插件<T>
4、收獲:
如何攔截App的啟動事件(onCreate事件)和UI事件
以EIT造形加快理解PhoneGap框架的結構
深刻領悟<I>的設計要領:如IPlugin接口設計
熟悉從<重構設計>到<重構代碼>的過程
二 重構的設計思考
1、重構范圍內共有3個EIT造形的美妙組合
第1個造形:{ Activity-DroidGap }
第2個造形:{ WebView-CodavaWebView }
第3個造形:{ PluginManager-Plugin-<T>}
熟悉從<重構設計>到<重構代碼>的過程
2、因為不再搭配WebView,所以前兩個EIT造形都必須重構
3、第3個造形最復雜
4、上上策是:不重構第3個造形,其內涵和接口代碼都保持不變
5、成功地讓第3個造形跨到重構的新平台(即前兩個造形)
三 案例的成功關鍵和啟示
1、關鍵:在於上述的設計思考
2、洞悉:心懷EIT造形去觀察架構
3、技巧:從<I>觀察重構的變動震幅,找出上上之策
4、啟示:優越架構,帶來易於重構的機會,創造了系統未來性