乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      建造者模式的應(yīng)用

       印度阿三17 2019-04-13

      一、實(shí)驗(yàn)?zāi)康模?/strong>

      1) 掌握建造者模式(Builder)的特點(diǎn)

      2) 分析具體問(wèn)題,使用建造者模式進(jìn)行設(shè)計(jì)。

      二、實(shí)驗(yàn)環(huán)境:

      Eclipse

      三、實(shí)驗(yàn)內(nèi)容:

      (寫出主要的內(nèi)容)

      實(shí)例:KFC套餐

      建造者模式可以用于描述KFC如何創(chuàng)建套餐:套餐是一個(gè)復(fù)雜對(duì)象,它一般包含主食(如漢堡、雞肉卷等)和飲料(如果汁、可樂(lè)等)等組成部分,不同的套餐有不同的組成部分,而KFC的服務(wù)員可以根據(jù)顧客的要求,一步一步裝配這些組成部分,構(gòu)造一份完整的套餐,然后返回給顧客。利用建造者模式設(shè)計(jì),用JAVA語(yǔ)言實(shí)現(xiàn)? (C#控制臺(tái)應(yīng)用程序?qū)崿F(xiàn))。繪制該模式的UML圖。

      模式UML

      ?

      (1) Meal(套餐類)

      public class Meal {

      ??? private String pasta;

      ??? private String drink;

      ??? private String dishes;

      ??? public void setPasta(String pasta){

      ??????? this.pasta = pasta;

      ??? }

      ??? public void setDrink(String drink){

      ??????? this.drink = drink;

      ??? }

      ??? public void setDishes(String dishes){

      ??????? this.dishes = dishes;

      ??? }

      ??? public String getPasta(){

      ??????? return(this.pasta);

      ??? }

      ??? public String getDrink(){

      ??????? return(this.drink);

      ??? }

      ??? public String getDishes(){

      ??????? return(this.dishes);

      ??? }

      ?

      }

      (2)抽象建造者類MealBuilder(套餐建造者類)

      public abstract class MealBuilder {

      ??? Meal meal=new Meal();

      ??? public abstract void buildPasta();

      ??? public abstract void buildDrink();

      ??? public abstract void buildDishes();

      ??? public Meal getMeal() { //這道一個(gè)菜單,這個(gè)是返回

      ??????? return meal ;

      ??? }

      ???

      }

      (3)具體建造者類SubMealBuilderA()(A套餐建造者類)

      public class SubMealBuilderA extends MealBuilder {

      ??????? public void buildPasta()

      ??????? {

      ??????????? meal.setPasta("一份面條");

      ??????? }

      ??????? public void buildDrink()

      ??????? {

      ??????????? meal.setDrink("一瓶橙汁");

      ??????? }

      ??????? public void buildDishes()

      ??????? {

      ??????????? meal.setDishes("一份番茄炒雞蛋");

      ??????? }

      }

      (4) 具體建造者類SubMealBuilderB()(B套餐建造者類)

      public class SubMealBuilderB extends MealBuilder {

      ??????? public void buildPasta()

      ??????? {

      ??????????? meal.setPasta("一份米飯");

      ??????? }

      ??????? public void buildDrink()

      ??????? {

      ??????????? meal.setDrink("一瓶雪碧");

      ??????? }

      ??????? public void buildDishes()

      ??????? {

      ??????????? meal.setDishes("一份芹菜炒肉");

      ??????? }

      (5)指揮者類Waiter(服務(wù)員類)

      public class Waiter {

      ??? private MealBuilder mb;

      ??? public void setMealBuilder(MealBuilder mb)//調(diào)用這是從那里調(diào)用而來(lái),當(dāng)然是等待服務(wù)了

      ??? {

      ??????? this.mb = mb;

      ??? }

      ??? public Meal construct()

      ??? {

      ??????? mb.buildPasta();

      ??????? mb.buildDrink();

      ??????? mb.buildDishes();

      ??????? return mb.getMeal();

      ??? }

      }

      (6)客戶端測(cè)試類Client

      public class Waiter {

      ??? private MealBuilder mb;

      ??? public void setMealBuilder(MealBuilder mb)//調(diào)用這是從那里調(diào)用而來(lái),當(dāng)然是等待服務(wù)了

      ??? {

      ??????? this.mb = mb;

      ??? }

      ??? public Meal construct()

      ??? {

      ??????? mb.buildPasta();

      ??????? mb.buildDrink();

      ??????? mb.buildDishes();

      ??????? return mb.getMeal();

      ??? }

      }

      【模式代碼(JAVA語(yǔ)言實(shí)現(xiàn))】

      【運(yùn)行截圖】

      具體建造者類SubMealBuilderA()(A套餐建造者類)

      具體建造者類SubMealBuilderB()(B套餐建造者類)

      四、心得體會(huì):

      通過(guò)這次實(shí)驗(yàn),讓我學(xué)會(huì)掌握建造者模式(Builder)的特點(diǎn),分析具體問(wèn)題,使用建造者模式進(jìn)行設(shè)計(jì)。也稱生成器模式,生成器模式將所建造的產(chǎn)品(通常是一個(gè)復(fù)合體)最后一次性返回。

      來(lái)源:http://www./content-4-163301.html

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多