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

設(shè)計模式之構(gòu)建(Builder)模式 建造房子實例分析

 更新時間:2012年12月07日 12:07:35   作者:  
構(gòu)建模式主要用來針對復雜產(chǎn)品生產(chǎn),分離部件構(gòu)建細節(jié),以達到良好的伸縮性,考慮到設(shè)計模式來源于建筑學,因此舉一個建造房子的例子,需要的朋友可以參考下
構(gòu)建模式主要用來針對復雜產(chǎn)品生產(chǎn),分離部件構(gòu)建細節(jié),以達到良好的伸縮性。
考慮到設(shè)計模式來源于建筑學,因此舉一個建造房子的例子?,F(xiàn)在一個客戶要建造一棟房子House,
復制代碼 代碼如下:

public class House{
//客戶需求的房子
}

那么他首先需要一個設(shè)計師—Designer,但是設(shè)計師只能做設(shè)計,指示如何去建造房子,可是他并不會親自去做,那么就還需要一個施工隊伍BuildTeam,那么首先,Designer要設(shè)計出來如何去建造這棟房子,首先要施工隊打地基,然后施工隊要架骨架、接著上水泥等等(具體如何不得而知,需要請教專業(yè)人士),那么從這里我們可以知道設(shè)計師對施工隊是有要求的,那就是施工隊必須要會打地基、會架骨架、會上水泥等,因此得出如下招聘施工隊的要求:
復制代碼 代碼如下:

public interface BuildTeam{
public void 打地基();
public void 架骨架();
public void 上水泥();
。。。。。。
}

從上可以看出,要想做這個工程的施工隊伍,必須首先符號上面的條件,會做上面所有的事情。根據(jù)設(shè)計師的設(shè)計,又得知設(shè)計師會向施工隊下達一個命令,然后施工隊按照設(shè)計師的要求開始施工:
復制代碼 代碼如下:

public class Designer{
public void construct(BuildTeam team){
team.打地基();
team.架骨架();
team.上水泥();
}
}

由于從頭到尾都是設(shè)計師在下指令設(shè)計,而施工隊進行實際施工,所以客戶最終會找施工隊驗收房子,因此施工隊必須要交付房子給客戶,因此施工隊需要加上一個交付房子的條款,不然房子做成了,但是施工隊卻不交付給我,那不是吃虧了,因此:
復制代碼 代碼如下:

public interface BuildTeam{
public void 打地基();
public void 架骨架();
public void 上水泥();
。。。。。。
public House deliverHouse(); //增加一個交付房子的方法。
}

好了,房子設(shè)計好了,如何做也設(shè)計好了,如今就差給誰來做了,現(xiàn)在有一個施工隊:
復制代碼 代碼如下:

public class BuildTeamA extends BuildTeam{
public void 打地基(){}
public void 架骨架(){}
public void 上水泥(){}
。。。。。。
public House deliverHouse(){}
}

從施工隊的情況來看, 這個施工隊完全符合設(shè)計師對施工隊的要求,既接口BuildTeam,好,那么最終決定由他們來做,從頭到尾全部流程如下:
Designer designer = new Designer(); //找到一個設(shè)計師
BuildTeam teamA = new BuildTeamA(); //找到一個施工隊伍BuildTeamA
designer.construct(teamA); //設(shè)計師下命令,讓施工隊伍按照他的設(shè)計開始建造
House house = teamA.deliverHouse(); //施工隊完成后交付房子
第一棟房子終于建成了,此時同一個客戶覺得這個設(shè)計師的設(shè)計不錯,于是決定還要使用他的設(shè)計并由他指示施工隊再造一棟同樣的房子,可是施工隊BuildTeamA突然獅子大開口,想要更多的錢,客戶為了節(jié)省成本,只好再次招聘一個新的施工隊進行施工,剛好有個施工隊伍BuildTeamB符合要求,于是流程如下:
復制代碼 代碼如下:

BuildTeam teamB = new BuildTeamB();
designer.construct(teamB); //由于設(shè)計師沒變,且造同樣的房子,所以designer不需要重新找,只需要把他指示的施工隊換成BuildTeamB即可
House house = teamB.deliverHouse(); //施工隊完成后交付房子

好了,第二棟房子也完成了,但是整個流程上并沒有太大的變動,由于使用了構(gòu)建模式,整個流程分工非常明確,客戶不需要參與任何設(shè)計以及建造,設(shè)計師只負責設(shè)計以及下命令,而施工隊也僅僅只負責具體的實現(xiàn)細節(jié),使得建造明細獨立出來,隨時更換不同的施工隊均可。

相關(guān)文章

  • Java源碼解析HashMap的resize函數(shù)

    Java源碼解析HashMap的resize函數(shù)

    今天小編就為大家分享一篇關(guān)于Java源碼解析HashMap的resize函數(shù),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • IDEA 熱部署設(shè)置(JRebel插件激活)

    IDEA 熱部署設(shè)置(JRebel插件激活)

    這篇文章主要介紹了IDEA 熱部署設(shè)置(JRebel插件激活),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 淺析Java如何在并發(fā)環(huán)境下生成一個只讀的map

    淺析Java如何在并發(fā)環(huán)境下生成一個只讀的map

    這篇文章主要為大家詳細介紹了Java如何在并發(fā)環(huán)境下生成一個只讀的map,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • 如何使用Playwright對Java API實現(xiàn)自動視覺測試

    如何使用Playwright對Java API實現(xiàn)自動視覺測試

    這篇文章主要介紹了如何使用Playwright對Java API實現(xiàn)自動視覺測試,幫助大家更好的理解和使用Playwright,感興趣的朋友可以了解下
    2021-01-01
  • java?并發(fā)線程個數(shù)的如何確定

    java?并發(fā)線程個數(shù)的如何確定

    這篇文章主要介紹了java?并發(fā)線程個數(shù)的如何確定,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring配置shiro時自定義Realm中屬性無法使用注解注入的解決辦法

    Spring配置shiro時自定義Realm中屬性無法使用注解注入的解決辦法

    今天小編就為大家分享一篇關(guān)于Spring配置shiro時自定義Realm中屬性無法使用注解注入的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Java 線程的優(yōu)先級(setPriority)案例詳解

    Java 線程的優(yōu)先級(setPriority)案例詳解

    這篇文章主要介紹了Java 線程的優(yōu)先級(setPriority)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java實現(xiàn)打飛機小游戲(附完整源碼)

    Java實現(xiàn)打飛機小游戲(附完整源碼)

    這篇文章主要介紹了Java實現(xiàn)打飛機小游戲(附完整源碼),這里整理了詳細的代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 詳解使用Jenkins部署Spring Boot項目

    詳解使用Jenkins部署Spring Boot項目

    這篇文章主要介紹了詳解使用Jenkins部署Spring Boot,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 一文詳解java如何實現(xiàn)鏈式調(diào)用

    一文詳解java如何實現(xiàn)鏈式調(diào)用

    從?Java?8?開始,便引入了一種稱為“流式?API”的編程風格,當然也被稱為“鏈式設(shè)置”或“鏈式調(diào)用”,本文主要來和大家討論一下如何實現(xiàn)鏈式調(diào)用,感興趣的可以了解下
    2023-12-12

最新評論

中阳县| 青田县| 沁水县| 武汉市| 桑日县| 通道| 东海县| 南平市| 潮安县| 蕲春县| 新丰县| 鹤壁市| 聊城市| 襄垣县| 永昌县| 湖北省| 昌黎县| 定日县| 临泉县| 霍城县| 从江县| 江源县| 南雄市| 嘉义县| 三明市| 清水县| 商水县| 大英县| 彩票| 定远县| 彰化县| 卫辉市| 泸西县| 海淀区| 乐清市| 遂昌县| 宿松县| 彭泽县| 灌云县| 安阳县| 三明市|