亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java設計模式中構造者模式怎么用

發布時間:2021-11-17 14:49:09 來源:億速云 閱讀:254 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關java設計模式中構造者模式怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。


首先看下構造這的類圖

java設計模式中構造者模式怎么用


從這個圖可以看出構造模式有四個模塊:

  • Director(導演角色),調用具體構造者創建產品對象,他是負責從客戶端傳來指令交給具體干活的類。

  • Builder (抽象建造者),沒有具體的業務意義,就是抽象出具體構造者的方法,簡單說就是為了多態。

  • ConcreteBuilder(具體構造者),苦力,實打實的把零件造好,組裝好

  • Product(抽象產品),這里僅僅是一個抽象產品,具體業務也行更加復雜

  • ProductXXX(具體產品),對抽象產品的實現

具體的情況也許并非如上圖所示,如果確定系統開發過程中只有一個產品,那么沒有必要分成這么多抽象,Builder 轉化為一個具體構造者,直接引入 Product 進行處理也是可以的。

接下來還是來點代碼看看具體構造者模式是怎么玩的。

public abstract class Product{//提供公共部分}public class ProductOne extends Product{//具體第一個產品相關屬性方法}public class ProductOne extends Product{//具體第二個產品相關屬性方法}

上面把產品類進行了設定,可以在抽象產品中實現一些共用的,再聲明一些抽象方法迫使子類必須實現。接下看下 Builder 這塊。

public interface Builder{  public void buildOne();  public void buildTwo();  public Product retrievePro();
}

publc class ConcreteBuilderOne implements Builder{  private Product product=new ProductOne();  public void buildOne(){  //打造第一個零件
  }  public void buildTwo(){  //打造第二個零件
  }  public Product retrievePro(){  //組裝出產品2
  return product;
  }
}

publc class ConcreteBuilderTwo implements Builder{  private Product product=new ProductTwo();  public void buildOne(){  //打造第一個零件
  }  public void buildTwo(){  //打造第二個零件
  }  public Product retrievePro(){  //組裝出產品2
  return product;
  }
}

最終導演出來進行組織下具體產品,給客戶端提供友好接口

public class Director{  private Builder builder;  //這里可以結合工廠模式
  public void construct(String type){    if("one".equals(type)){
      builder=new ConcreteBuilderOne()
      builder.buildOne();
      builder.buildTwo();
      builder.retrievePro();
    }else if("two".equals(type)){
      builder=new ConcreteBuilderTwo()
      builder.buildOne();
      builder.buildTwo();
      builder.retrievePro();
    }else{

    }
  }
}

上述也許過于公式化,舉個例子,有個人,姑且叫他東郭先生(還沒有遇到狼)吧,他要蓋房子,于是他找了張三打地基,李四砌墻,王五鋪瓦,最終東郭先生就蓋好了房子,圖例來表示如下

java設計模式中構造者模式怎么用

東郭先生就是一個導演的角色,而張三李四王五就是具體的構造者角色,東郭將蓋房子這個事分別交給他們三個來完成,最后自己放個炮仗就說自己蓋好房子了。

構造者模式是在構造比較復雜對象,并且該對象可以拆分多個,每個拆分也是個對象或組成部分。可以對各個步驟進行依賴,也就是分步驟進行,如蓋房子,先打地基,然后砌墻,最后鋪瓦,這個順序不可錯(導演的功能),因此在一個屬性在被賦值之前必須把另外一個屬性也要賦值這樣的情況,用構造者很好使。

關于“java設計模式中構造者模式怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

资中县| 阳高县| 绍兴市| 图片| 平顶山市| 鹰潭市| 涡阳县| 宁陵县| 柳州市| 黎川县| 黎城县| 阜平县| 达孜县| 调兵山市| 景泰县| 定结县| 田林县| 天祝| 五寨县| 呼伦贝尔市| 汝阳县| 焉耆| 马山县| 白朗县| 阿鲁科尔沁旗| 广平县| 乌兰县| 宜兰县| 裕民县| 龙门县| 仙桃市| 兴安县| 肇源县| 车致| 萨迦县| 社旗县| 五原县| 伊宁县| 汉寿县| 黔东| 伊川县|