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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

建造者模式(生成器模式)

發布時間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 建造者模式(生成器模式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,定義

建造者模式:也叫生成器模式,將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。

二,結構


Builder:為創建一個Product對象的各個部件指定抽象接口
ConcreteBuilder:具體建造者,實現Builder接口,構造和裝備各個部件,
Product:具體的產品角色
Director:指揮者,可根據用戶需求構建對象,她是構建一個使用Builder接口的對象。

三,示例

public abstract class PersonBuilder {//畫一個人: 頭 身體 左手 右手 左腿 右腿//建造人的過程是一樣的,為了避免建造過程的馬虎,我們需要先把過程固定public abstract void buildHead();public abstract void buildBody();public abstract void buildArmLeft();public abstract void buildArmRight();public abstract void buildLegLeft();public abstract void buildLegRight(); }public class ThinPerson extends PersonBuilder {@Overridepublic void buildHead() {System.out.println("畫一個人頭(瘦)");}@Overridepublic void buildBody() {System.out.println("畫一個身體(瘦)");}@Overridepublic void buildArmLeft() {System.out.println("畫一個左胳膊(瘦)");}@Overridepublic void buildArmRight() {System.out.println("畫一個右胳膊(瘦)");}@Overridepublic void buildLegLeft() {System.out.println("畫一個左腿(瘦)");}@Overridepublic void buildLegRight() {System.out.println("畫一個右腿(瘦)");} }public class PersonDirector {//指揮者private PersonBuilder builder;public PersonDirector(PersonBuilder builder){this.builder = builder;}public void creatPerson(){builder.buildHead();builder.buildBody();builder.buildArmLeft();builder.buildArmRight();builder.buildLegLeft();builder.buildLegRight();} }//test main //建造者模式 public static void builderModel(){/構建一個瘦子 // ThinPerson person = new ThinPerson();//構建一個胖子FatPerson person = new FatPerson();PersonDirector director = new PersonDirector(person);director.creatPerson();}

四,總結

優點:

  • 1,使用生成器模式可以使客戶端不必知道產品內部組成的細節。
  • 2,具體的建造者類之間是相互獨立的,對系統的擴展非常有利。
  • 3,由于具體的建造者是獨立的,因此可以對建造過程逐步細化,而不對其他的模塊產生任何影響。

    應用場景:

  • 1,主要用于創建一些復雜的對象,這些對象內部構建的構建順序通常是穩定的,但對象內部的構建通常面臨著復雜的變化。每一個內部成分本身可以是對象,也可以使一個對象的一個組成部分。

  • 2,需要生成的產品對象的屬性相互依賴。建造模式可以強制實行一種分步驟進行的建造過程。
  • 3,在對象創建過程中會使用到系統中的其他一些對象,這些對象在產品對象的創建過程中不易得到

參考:《大話設計模式》阿木俠 Java知音

示例代碼:https://github.com/wangxp423/ExerciseDesignmodel

總結

以上是生活随笔為你收集整理的建造者模式(生成器模式)的全部內容,希望文章能夠幫你解決所遇到的問題。

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