Java 设计模式 -- 建造者模式
生活随笔
收集整理的這篇文章主要介紹了
Java 设计模式 -- 建造者模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
建造者模式
建造者模式就是一步一步的創建一個復雜的對象,而且允許用戶指定復雜對象的類型和內容。
Builder 類是一個抽象類,用于定義一些創建子部件的方法,Builder類中應該還有一個 getResult() 方法,用于將創建好的部件組裝成一個產品返回。
Director 類又稱為指揮者,用于安排復雜對象的建造次序,通過construct() 方法,指導Builder類完成組裝。
通過一個例子來更好的理解建造者模式,比如說現在的手機都支持更換主題,所有的主題建造過程都是類似的,比如說更換圖標,背景,提示音,那么這個時候就可以通過建造者模式來完成這一過程。
先來設計一下Product和Builder類
public class Product {private String mBackground;private String mIcon;private String mSounds;public String getBackground() {return mBackground;}public void setBackground(String background) {mBackground = background;}public String getIcon() {return mIcon;}public void setIcon(String icon) {mIcon = icon;}public String getSounds() {return mSounds;}public void setSounds(String sounds) {mSounds = sounds;} }public abstract class Builder {private Product mProduct = new Product();public Product getResult(){return mProduct;}public abstract void buildBackground();public abstract void buildIcon();public abstract void buildSounds(); }可見,不論什么樣的主題,以上代碼都是通用的,對于不同的主題,只需要在ConcreteBuilder中進行設置就可以了。
public class ConcreteBuilder extends Builder{public void buildBackground(){mProduct.setBackground("Black");}public void buildIcon(){mProduct.setIcon("MyIcon");}public void buildSounds(){mProduct.setSounds("MySounds");} }既然產品生產過程已經構建出來了,那么就到了Director 類發揮作用的時候了,現在就由Director 來指揮各個部件的創造,并且將組裝好的產品返回給客戶端。
public class Director {public Product construct(Builder builder){builder.buildBackground();builder.buildIcon();builder.buildSounds();return builder.getResult();}}可見Director 類中只有一個簡單的方法,有的時候當產品的部件不是很多的時候,完全可以將該方法放到Builder類中,從而省略Director 類。
已經看出,建造者模式和抽象工廠模式很類似。其實,抽象工廠模式更側重于生產 “部件” , 而建造者模式側重于將各個 部件組裝成一個產品。
作者:ghwaphon
鏈接:https://www.jianshu.com/p/7d16da4e61b8
來源:簡書
總結
以上是生活随笔為你收集整理的Java 设计模式 -- 建造者模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《JAVA与模式》之建造模式
- 下一篇: Java设计模式透析之 —— 策略(St