建造者模式
建造者模式,英文名builder_pattern,拋開所有文獻對建造者模式的定義,我認為建造者模式是當我們現有的資源無法滿足我們的業務的時候,我們進行的一個統一的建造或者改造的一個過程,或者說是一個代碼的封裝,我們可以叫它為建造者模式。
我曾經做過一個這樣的模塊,一個業務系統,數據產生在子系統A里面,同時子系統B需要A所產生的數據,但是需要經過"改造"和"加工",我們打個比方,假如A得到了一個關於交易的情況的一個Json類型的數據包,給B的時候也許有一些屬性和字段不需要,或者A沒有的而B卻需要進行自主的構建,其實假如我們只有這一項的話,完全不需要使用到設計模式,但是假如A和B之間需要交換的數據種類非常的多,並且有可能C系統也會參與進來,甚至D系統也來了。。。這個時候我們不得不想一個統一的辦法來管理它們,沒錯,就是建造者模式。上代碼,我們先使用截圖的方式來展示,稍后給網盤鏈接下載。
1) 建造者模式包的結構
2) 創建AMessage A系統中的實體類
3) 創建BMessage B系統中的實體類
4) 創建抽象構建者
5) 創建具體構建者
6)創建導演者類,用於構造的一個指揮,get和set具體的bean對象
7) 創建測試類
8) 驗證結果
通過以上的操作,我們可以只需要一個A的對象就可以構造出B的對象,而所有的構造過程都可以在這里面完成,完全滿足工程的高內聚低耦合的思想,以及我們的構建過程類的結構不需要改變,我們只需添加具體的操作和新的構建過程即可完成功能的實現,完全符合開放封閉原則。當然有同學會說,你這樣能保證數據的同步么?即A的數據產生了時時會傳送到B那邊去嗎?這里的話實現的方法會有很多,如果對同步性不高的業務操作來說,我們甚至只需要一個跨域請求都可以完成這個,或者使用面向切面編程在A數據產生的過程中,把構造B的這個操作封裝成一個切面來實現,如果對同步性要求很高的話,我們使用socket網編套接字實現系統之間的時事通訊或者使用分布式同步技術來完成,這些技術都必須經過架構設計來實現,就不一一贅述了。我們旨在於理解這個簡單的設計模式,加深對面向對象的理解,早日脫離"面向過程"的java。
小demo網盤下載地址:
http://pan.baidu.com/s/1hrAYMWG#list/path=%2F