最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA設計模式之建造者模式原理與用法詳解

 更新時間:2017年08月03日 10:01:24   作者:遲做總比不做強  
這篇文章主要介紹了JAVA設計模式之建造者模式,簡單說明了建造者模式的原理、組成,并結合實例形式分析了java建造者模式的定義與用法,需要的朋友可以參考下

本文實例講述了JAVA設計模式之建造者模式定義與用法。分享給大家供大家參考,具體如下:

建造者模式:將復雜對象的構造與它的實現(xiàn)相分離,讓相同的構建過程可以創(chuàng)建不同的對象。

適用場合:

復雜對象的算法應該獨立于該對象的組成部分或當構造過程允許被構造不同的對象時。

組成角色:

1 創(chuàng)建者(Builder)接口:為創(chuàng)建一個對象的對應部件所指定抽象接口。
2 具體創(chuàng)建者(ConcreteBuilder):實現(xiàn)Builder的接口以構造對象的各個部件。
3 具體創(chuàng)建者管理對象(Director):使用Builder接口的對象。
4 復雜產(chǎn)品對象(Product):被構造的復雜對象。

/**
 * 生產(chǎn)汽車:創(chuàng)建者Builder接口
 * @description:
 * @date 2016-1-21 下午1:15:39
 */
public interface CarBuilder {
  void carRoof();//生產(chǎn)車頂
  void carBottom();//生產(chǎn)車底盤
  void carWheel();//生產(chǎn)車輪
  Car buildCar();
}

/**
 * 具體創(chuàng)建對象ConcreteBuilder:白色汽車
 * @description:
 * @date 2016-1-21 下午1:16:22
 */
public class WhiteCar implements CarBuilder {
  Car car;
  public WhiteCar() {
    car = new Car();
  }
  @Override
  public void carRoof() {
    car.setRoof("制造白色汽車---車頂");
  }
  @Override
  public void carBottom() {
    car.setBottom("制造白色汽車---車底");
  }
  @Override
  public void carWheel() {
    car.setWheel("制造白色汽車---車輪");
  }
  @Override
  public Car buildCar() {
    // TODO Auto-generated method stub
    return car;
  }
}

/**
 * 具體創(chuàng)建者管理對象(Director),建造者
 * @description:
 * @author ldm
 * @date 2016-1-21 下午1:17:12
 */
public class CarDirector {
  public Car constructPerson(CarBuilder carBuilder) {
    carBuilder.carRoof();
    carBuilder.carBottom();
    carBuilder.carWheel();
    return carBuilder.buildCar();
  }
}

/**
 * 最終生產(chǎn)的'復雜產(chǎn)品'對象
 * @description:
 * @date 2016-1-21 下午1:22:28
 */
public class Car {
  private String roof;// 車頂
  private String bottom;// 車底
  private String wheel;// 車輪
  public String getRoof() {
    return roof;
  }
  public void setRoof(String roof) {
    this.roof = roof;
  }
  public String getBottom() {
    return bottom;
  }
  public void setBottom(String bottom) {
    this.bottom = bottom;
  }
  public String getWheel() {
    return wheel;
  }
  public void setWheel(String wheel) {
    this.wheel = wheel;
  }
}

測試代碼:

public class Test {
  public static void main(String[] args) {
    CarDirector carDirector = new CarDirector();
    Car car = carDirector.constructPerson(new WhiteCar());
    System.out.println(car.getRoof());
    System.out.println(car.getBottom());
    System.out.println(car.getWheel());
    System.out.println("----整個車子就完成了!--");
  }
}

打印結果:

制造白色汽車—車頂
制造白色汽車—車底
制造白色汽車—車輪
—-整個車子就完成了!–

更多java相關內容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • 使用Maven中的scope總結

    使用Maven中的scope總結

    這篇文章主要介紹了使用Maven中的scope總結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot整合Mybatis的知識點匯總

    SpringBoot整合Mybatis的知識點匯總

    在本篇文章里小編給各位整理的是關于SpringBoot整合Mybatis的知識點匯總,有興趣學習的參考下。
    2020-02-02
  • JavaWeb詳細講述Cookie和Session的概念

    JavaWeb詳細講述Cookie和Session的概念

    web開發(fā)階段我們主要是瀏覽器和服務器之間來進行交互。瀏覽器和服務器之間的交互就像人和人之間進行交流一樣,但是對于機器來說,在一次請求之間只是會攜帶著本次請求的數(shù)據(jù)的,但是可能多次請求之間是會有聯(lián)系的,所以提供了會話機制
    2022-06-06
  • Java實現(xiàn)的具有GUI的校園導航系統(tǒng)的完整代碼

    Java實現(xiàn)的具有GUI的校園導航系統(tǒng)的完整代碼

    這篇文章主要介紹了Java實現(xiàn)的具有GUI的校園導航系統(tǒng)的完整代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 教你用Springboot實現(xiàn)攔截器獲取header內容

    教你用Springboot實現(xiàn)攔截器獲取header內容

    項目中遇到一個需求,對接上游系統(tǒng)是涉及到需要增加請求頭,請求頭的信息是動態(tài)獲取的,需要動態(tài)從下游拿到之后轉給上游,文中非常詳細的介紹了該需求的實現(xiàn),需要的朋友可以參考下
    2021-05-05
  • SpringBoot對數(shù)據(jù)訪問層進行單元測試的方法詳解

    SpringBoot對數(shù)據(jù)訪問層進行單元測試的方法詳解

    我們公司作為一個面向銀行、金融機構的TO B類企業(yè),頻繁遇到各個甲方爸爸提出的國產(chǎn)化數(shù)據(jù)庫的改造需求,包括OceanBase, TiDB,geldenDB等等,本文就介紹一種快高效、可復用的解決方案——對數(shù)據(jù)訪問層做單元測試,需要的朋友可以參考下
    2023-08-08
  • java中CompletableFuture異步執(zhí)行方法

    java中CompletableFuture異步執(zhí)行方法

    本文主要介紹了java中CompletableFuture異步執(zhí)行方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • SpringBoot配置文件密碼加密的三種方案

    SpringBoot配置文件密碼加密的三種方案

    這篇文章主要介紹了SpringBoot配置文件密碼加密的三種方案,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • 詳解SpringCloud-OpenFeign組件的使用

    詳解SpringCloud-OpenFeign組件的使用

    這篇文章主要介紹了SpringCloud-OpenFeign組件的使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Spring Boot 排除某個類加載注入IOC的操作

    Spring Boot 排除某個類加載注入IOC的操作

    這篇文章主要介紹了Spring Boot 排除某個類加載注入IOC的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論

武隆县| 玉山县| 班戈县| 伊川县| 临清市| 原阳县| 盐津县| 盐山县| 阜平县| 镶黄旗| 视频| 乐亭县| 聂拉木县| 台东县| 历史| 绥江县| 湄潭县| 布拖县| 宁德市| 来安县| 静海县| 和政县| 红原县| 商河县| 金昌市| 保康县| 南汇区| 容城县| 泸定县| 威宁| 白银市| 富顺县| 龙游县| 灵台县| 徐汇区| 隆德县| 胶南市| 桐庐县| 马关县| 化隆| 呼图壁县|