日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 设计模式 -- 建造者模式

發布時間:2025/3/21 java 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 设计模式 -- 建造者模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。