Builder模式在網站自動生成系統中的應用
一個網站的生成,包括複雜的建立過程,採取的技術不同,這個建立過程就不一樣,所以類似Jive的forumFactory,在該系統中也有一個SiteFactory,用來定義不同的站點生成工廠。
現在看看我的系統中站點的生成過程:
1.生成站點結構
2.生成按鈕button
3.生成同級別中的集合buttons
4.更新同級別中頁面指向新頁面的連結
5.生成新的頁面
這5步可以看成是5個部件,這個5個部件中任何一個的組裝相當複雜。
我們再看看將這5個部件組裝起來的過程也比較複雜,站點管理中有刪除頁面 增加頁面,這兩中過程都要涉及上面5個部件,但過程次序不一樣。
根據Builder模式過程和部件分離的宗旨,很明顯這裡需要使用builder模式,這樣可以將組裝站點的過程和5個部件解耦。
設計後,存在下列幾個主要class:
Pagebuilder 這是一個抽象類,封裝了上面5個部件的組裝方法,需要具體定義的有3個。
addPageBuilder 增加新頁面,繼承pageBuilder類,具體實現需要具體定義的部件組裝方法,如增加結構 增加子選單按鈕。
delPageBuilder 刪除頁面 繼承PageBuilder類,是其concrete之一,主要定義部件的拆裝方法。
IniPageBuilder 初始化頁面,站點第一次建立,需要一些初始化頁面,也是PageBuilder的concrete之一。
PageDirector 封裝站點的組建過程,比如Conctruct方法,就是封裝了增加頁面的組建過程,把PageBuilder中5個部件調出來,依據不同的條件和次序排列出增減頁面的組建過程。
客戶端呼叫,比如新增頁面:
PageBuilder pageBuilder=new addPageBuilder(this,title,name,icon,description);
PageDirector pagedirector = new PageDirector(pageBuilder);
pagedirector.constructNewPage(previd,pid);
現在看看我的系統中站點的生成過程:
1.生成站點結構
2.生成按鈕button
3.生成同級別中的集合buttons
4.更新同級別中頁面指向新頁面的連結
5.生成新的頁面
這5步可以看成是5個部件,這個5個部件中任何一個的組裝相當複雜。
我們再看看將這5個部件組裝起來的過程也比較複雜,站點管理中有刪除頁面 增加頁面,這兩中過程都要涉及上面5個部件,但過程次序不一樣。
根據Builder模式過程和部件分離的宗旨,很明顯這裡需要使用builder模式,這樣可以將組裝站點的過程和5個部件解耦。
設計後,存在下列幾個主要class:
Pagebuilder 這是一個抽象類,封裝了上面5個部件的組裝方法,需要具體定義的有3個。
addPageBuilder 增加新頁面,繼承pageBuilder類,具體實現需要具體定義的部件組裝方法,如增加結構 增加子選單按鈕。
delPageBuilder 刪除頁面 繼承PageBuilder類,是其concrete之一,主要定義部件的拆裝方法。
IniPageBuilder 初始化頁面,站點第一次建立,需要一些初始化頁面,也是PageBuilder的concrete之一。
PageDirector 封裝站點的組建過程,比如Conctruct方法,就是封裝了增加頁面的組建過程,把PageBuilder中5個部件調出來,依據不同的條件和次序排列出增減頁面的組建過程。
客戶端呼叫,比如新增頁面:
PageBuilder pageBuilder=new addPageBuilder(this,title,name,icon,description);
PageDirector pagedirector = new PageDirector(pageBuilder);
pagedirector.constructNewPage(previd,pid);
相關文章
- 再談網站自動生成系統中的樹形結構網站
- Oracle PGA自動管理在OLAP系統中的應用Oracle
- 網站自動生成?網站
- 運用J2EE+XML開發網站自動生成系統XML網站
- 大型分散式網站架構:快取在分散式系統中的應用分散式網站架構快取
- 自動化系統S模式雷達應用筆記模式筆記
- TWaver在FTTX裝置網管系統中的應用
- 淺談大型網站動態應用系統架構網站架構
- 生成器模式(Builder)模式UI
- 感測器在自動駕駛中的應用自動駕駛
- 開源網站生成系統網站
- 工業網路交換機在智慧電網系統中的應用
- b站 自動生成的字幕
- 設計模式-生成器模式Builder設計模式UI
- 【設計模式】- 生成器模式(Builder)設計模式UI
- 工業乙太網交換機在工業自動化中的應用
- 一個用於網站自動化測試的生態系統實現網站
- AutoML 在推薦系統中的應用TOML
- 模板與例項在系統中的應用
- 在Linux系統中讓ORACLE自動啟動LinuxOracle
- 代理IP在廣告管理和自動化中的應用
- 設計模式在 TypeScript 中的應用 – 策略模式設計模式TypeScript
- 建造者模式(Builder)(生成器)模式UI
- vivo前端智慧化實踐:機器學習在自動網頁佈局中的應用前端機器學習網頁
- 策略模式在應用中的實踐模式
- 觀察者模式在 Javascript 中的應用模式JavaScript
- LruCache在美團DSP系統中的應用演進
- 大資料在藍芽系統中的應用大資料藍芽
- 淺談設計模式在建安系統中的應用設計模式
- “小眾”之美 ——Ruby在QA自動化中的應用
- 讓系統自動生成表頭的方法(轉)
- Linux 系統中隨機數在 KVM 中的應用Linux隨機
- 設計模式十: 生成器模式(Builder Pattern)設計模式UI
- 設計模式在vue中的應用(六)設計模式Vue
- 設計模式在vue中的應用(七)設計模式Vue
- 設計模式在vue中的應用(五)設計模式Vue
- 設計模式在vue中的應用(三)設計模式Vue
- 設計模式在vue中的應用(四)設計模式Vue