<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
建造者模式(Builder Pattern),又叫生成器模式,是一種物件構建模式 它可以將複雜物件的建造過程抽象出來,使這個抽象過程的不同實現方法可以構造出不同表現的物件。建造者模式是一步一步建立一個複雜的物件,它允許使用者只通過指定複雜物件的型別和內容就可 以構建它們,使用者不需要知道內部的具體構建細節。
女生每天化妝,假如只需要做髮型,香水,衣服,並要求按照發型——》香水——》衣服的順序進行,用程式碼實現
定義女生抽象類
/** * 女生抽象類 * @author:liyajie * @createTime:2022/2/16 10:20 * @version:1.0 */ public abstract class AbstractWoman { //設計髮型 public abstract void buildHairstyle(); //使用香水 public abstract void buildPerfume(); //設計衣服 public abstract void buildClothing(); }
定義女生實現類
/** * 女生實現類 * @author:liyajie * @createTime:2022/2/16 10:21 * @version:1.0 */ public class Woman extends AbstractWoman { @Override public void buildHairstyle() { System.out.println("馬尾造型"); } @Override public void buildPerfume() { System.out.println("古龍香水"); } @Override public void buildClothing() { System.out.println("海瀾之家"); } }
測試類
/** * 測試類 * @author:liyajie * @createTime:2022/2/15 16:35 * @version:1.0 */ public class Test { public static void main(String[] args) { Woman woman = new Woman(); woman.buildHairstyle(); woman.buildPerfume(); woman.buildClothing(); System.out.println(woman); } }
檢視測試結果
定義女生類
/** * 女生化妝 * @author:liyajie * @createTime:2022/2/15 15:40 * @version:1.0 */ @Data public class WomanNew { // 髮型 private String hairstyle; // 香水 private String perfume; // 服裝 private String clothing; //化完妝後的展示效果 public void show(){ System.out.println("化妝完成"); } }
定義化妝師抽象類
/** * 化妝師抽象類 * @author:liyajie * @createTime:2022/2/15 15:58 * @version:1.0 */ public abstract class AbstractDresserNew { protected Woman woman = new Woman(); //設計髮型 public abstract void buildHairstyle(); //使用香水 public abstract void buildPerfume(); //設計衣服 public abstract void buildClothing(); public Woman getWoman(){ return woman; } }
定義具體的化妝師類
/** * 具體的化妝師 * @author:liyajie * @createTime:2022/2/15 16:17 * @version:1.0 */ public class DresserNew extends AbstractDresserNew{ @Override public void buildHairstyle() { woman.setHairstyle("馬尾造型"); } @Override public void buildPerfume() { woman.setPerfume("古龍香水"); } @Override public void buildClothing() { woman.setClothing("海瀾之家"); } }
定義化妝總設計師類(指揮者)
/** * 化妝總設計師(指揮者) * @author:liyajie * @createTime:2022/2/15 16:22 * @version:1.0 */ public class DresserManage { private AbstractDresser abstractDresser; public DresserManage(AbstractDresser abstractDresser){ this.abstractDresser = abstractDresser; } public Woman makeUp(){ abstractDresser.buildHairstyle(); abstractDresser.buildPerfume(); abstractDresser.buildClothing(); return abstractDresser.getWoman(); } }
定義測試類
/** * 測試類 * @author:liyajie * @createTime:2022/2/15 16:35 * @version:1.0 */ public class TestNew { public static void main(String[] args) { DresserNew dresser = new DresserNew(); DresserManage dresserManage = new DresserManage(dresser); WomanNew womanNew = dresserManage.makeUp(); System.out.println(womanNew); } }
檢視結果
將產品本身與產品的建立過程解耦合
擴充套件性很高,很方便的增加或者替換具體建造者
方便用程式來控制產品的建立過程以及順序
指揮者類針對抽象建造者程式設計,系統擴充套件方便,符合開閉原則
建造者模式建立的產品一般組成部分類似,如果產品差異性非常大,不適合了,合理利用
如果產品內部變化複雜,導致系統非常龐大,權衡
到此這篇關於Java設計模式之建造者模式的範例詳解的文章就介紹到這了,更多相關Java建造者模式內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45