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

JAVA設(shè)計(jì)模式之建造者模式原理與用法詳解

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

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

建造者模式:將復(fù)雜對(duì)象的構(gòu)造與它的實(shí)現(xiàn)相分離,讓相同的構(gòu)建過(guò)程可以創(chuàng)建不同的對(duì)象。

適用場(chǎng)合:

復(fù)雜對(duì)象的算法應(yīng)該獨(dú)立于該對(duì)象的組成部分或當(dāng)構(gòu)造過(guò)程允許被構(gòu)造不同的對(duì)象時(shí)。

組成角色:

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

/**
 * 生產(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)建對(duì)象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)建者管理對(duì)象(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)的'復(fù)雜產(chǎn)品'對(duì)象
 * @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;
  }
}

測(cè)試代碼:

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("----整個(gè)車子就完成了!--");
  }
}

打印結(jié)果:

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

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

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 使用Maven中的scope總結(jié)

    使用Maven中的scope總結(jié)

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

    SpringBoot整合Mybatis的知識(shí)點(diǎn)匯總

    在本篇文章里小編給各位整理的是關(guān)于SpringBoot整合Mybatis的知識(shí)點(diǎn)匯總,有興趣學(xué)習(xí)的參考下。
    2020-02-02
  • JavaWeb詳細(xì)講述Cookie和Session的概念

    JavaWeb詳細(xì)講述Cookie和Session的概念

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

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

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

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

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

    SpringBoot對(duì)數(shù)據(jù)訪問(wèn)層進(jìn)行單元測(cè)試的方法詳解

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

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

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

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

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

    詳解SpringCloud-OpenFeign組件的使用

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

    Spring Boot 排除某個(gè)類加載注入IOC的操作

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

最新評(píng)論

新营市| 乐山市| 文山县| 赣州市| 金溪县| 德惠市| 离岛区| 堆龙德庆县| 错那县| 开封县| 吴忠市| 漯河市| 三原县| 晴隆县| 阿瓦提县| 高密市| 叙永县| 本溪| 商水县| 苍溪县| 兴文县| 鹤山市| 阳山县| 兴山县| 全椒县| 盐亭县| 海门市| 德安县| 化隆| 澎湖县| 元氏县| 皋兰县| 汨罗市| 合肥市| 吉林市| 凤翔县| 蓬莱市| 泾源县| 奉新县| 昭觉县| 新营市|