国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

建造者

kviccn / 435人閱讀

摘要:建造者模式建造者模式使用多個(gè)簡(jiǎn)單的對(duì)象一步一步構(gòu)建成一個(gè)復(fù)雜的對(duì)象。建造者實(shí)用范圍當(dāng)創(chuàng)建復(fù)雜對(duì)象的算法應(yīng)該獨(dú)立于該對(duì)象的組成部分以及它們的裝配方式時(shí)。參考建造者創(chuàng)建型設(shè)計(jì)模式之模式

建造者模式
建造者模式(Builder Pattern)使用多個(gè)簡(jiǎn)單的對(duì)象一步一步構(gòu)建成一個(gè)復(fù)雜的對(duì)象。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式。
一個(gè) Builder 類會(huì)一步一步構(gòu)造最終的對(duì)象。該 Builder 類是獨(dú)立于其他對(duì)象的。
建造者實(shí)用范圍
當(dāng)創(chuàng)建復(fù)雜對(duì)象的算法應(yīng)該獨(dú)立于該對(duì)象的組成部分以及它們的裝配方式時(shí)。
當(dāng)構(gòu)造過(guò)程必須允許被構(gòu)造的對(duì)象有不同表示時(shí)。
建造者主要解決
主要解決在軟件系統(tǒng)中,有時(shí)候面臨著"一個(gè)復(fù)雜對(duì)象"的創(chuàng)建工作,其通常由各個(gè)部分的子對(duì)象用一定的算法構(gòu)成;由于需求的變化,這個(gè)復(fù)雜對(duì)象的各個(gè)部分經(jīng)常面臨著劇烈的變化,但是將它們組合在一起的算法卻相對(duì)穩(wěn)定
定義

將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。

使用場(chǎng)景

通過(guò)上面的定義我們大概已經(jīng)知道創(chuàng)建模式它是要做什么了

相同的方法,不同的執(zhí)行順序,產(chǎn)生不同的事件結(jié)果時(shí)

多個(gè)部件或零件,都可以裝配到一個(gè)對(duì)象中,但是產(chǎn)生的運(yùn)行結(jié)果又不相同時(shí)

產(chǎn)品類非常復(fù)雜,或者產(chǎn)品類中的調(diào)用順序不同產(chǎn)生了不同的效能,這個(gè)時(shí)候使用建造者模式非常合適

當(dāng)初始化一個(gè)對(duì)象特別復(fù)雜,如參數(shù)多,且很多參數(shù)都具有默認(rèn)值時(shí)

建造者實(shí)現(xiàn)

客戶

客戶提出的需求,比如我想要什么,我需要什么樣的,這個(gè)我得告訴有這個(gè)東西的人對(duì)吧或是可以建造的人,那現(xiàn)在客戶說(shuō)了我需要建造一個(gè)房子,下面是我們的客戶需求碼
    class Product {
      constructor () {
          this.bedroom = ""
          this.living = ""
          this.kitchen =""
      }
    }

上面的代碼我創(chuàng)建了一個(gè)Product類,里面產(chǎn)生了一個(gè)臥室的空間變量bedroom,一個(gè)客廳living的空間,一個(gè)廚房kitchen的空間

抽象建造者類

我們需要找到它們共同的本質(zhì),從而寫(xiě)一個(gè)屬于臥室,客廳,廚房的抽象類函數(shù),那么抽象是什么:從具體事物抽出、概括出它們共同的方面、本質(zhì)屬性與關(guān)系等,而將個(gè)別的、非本質(zhì)的方面、屬性與關(guān)系舍棄,這種思維過(guò)程,稱為抽象。
總的來(lái)說(shuō)我絕絕的它們是虛無(wú)縹緲的東西,需要你自己的思維去想去思考,當(dāng)然每個(gè)人的思考方式,思考的點(diǎn)不同抽象出的本質(zhì)就不一樣
    class house {
        build () {
            console.log("建造")
        }
    }

上面的代碼是我們編寫(xiě)一個(gè)簡(jiǎn)單的房子類,我們?cè)谶@里抽離的本質(zhì)是它的建造,俗話說(shuō)就是蓋的那種,你懂得~

簡(jiǎn)單舉例:

本質(zhì):運(yùn)動(dòng)

事物具體的實(shí)現(xiàn):跑步,游泳

本質(zhì):射擊

事物具體的實(shí)現(xiàn):手槍射擊,步槍射擊

本質(zhì):行駛

事物具體的實(shí)現(xiàn):寶馬行駛,奔馳行駛

具體的建造類

就是我們要具體怎么建造臥室bedroom,客廳living,廚房kitchen我們要具體的去實(shí)現(xiàn)客戶想要的東西
    // 臥室的建造類型
    class Bedroom extends house {
        build () {
            console.log("建造臥室")
        }
    }
    // 客廳的建造類
    class Living extends house {
        build () {
            console.log("建造客廳")
        }
    }
    // 廚房的建造類
    class Kitchen extends house {
        build () {
            console.log("建造廚房")
        }
    }

上面的代碼就是我們實(shí)現(xiàn)三個(gè)不同風(fēng)格的房子代碼實(shí)現(xiàn)

指揮官類

這個(gè)大家應(yīng)該可以想象的到它是要干什么吧,就正如我們平常去工地打工建造房子,每個(gè)隊(duì)伍肯定有一個(gè)包工頭吧,或者是這個(gè)房子項(xiàng)目的經(jīng)理工程師之類,它們肯定每天都會(huì)給你們布置任務(wù),今天要完成什么,用什么機(jī)器或者是摸具,或者是哪些大型工具什么的
    // 指揮創(chuàng)建用戶所需房子
    class Command  {
      construct (build) {
        build.build()
      }
    }

上面則是我們的指揮官類,每個(gè)需要?jiǎng)?chuàng)建的房子都要通過(guò)它的指揮去完成,沒(méi)有它是不行的,這樣我們也可以達(dá)到解耦的效果

代碼組合實(shí)現(xiàn)



    
    Title





上面我們的代碼中多了一個(gè)最終產(chǎn)品完成類,主要就是體現(xiàn)通過(guò)我們的一系列創(chuàng)建我們完成了哪些東西,也可以依據(jù)這些東西再去處理我們的邏輯,以及進(jìn)行擴(kuò)展等。
我們首先new一個(gè)臥室的構(gòu)造函數(shù),一個(gè)客廳的構(gòu)造函數(shù),繼續(xù)new指揮官newCommand構(gòu)造函數(shù)用來(lái)指揮創(chuàng)建,newCommand.construct(newBedroom)建造臥室,newCommand.construct(newLiving)建造客廳,通過(guò)組裝最終產(chǎn)品類提交完成報(bào)告。
建造者模式我們今天就講到這里了,具體的實(shí)現(xiàn)以及大概的代碼我都已經(jīng)給大家展示了。
參考: 建造者
創(chuàng)建型設(shè)計(jì)模式之Builder模式

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/104719.html

相關(guān)文章

  • 深入理解建造模式 ——組裝復(fù)雜的實(shí)例

    摘要:而建造者模式則是要求按照指定的藍(lán)圖建造產(chǎn)品,它的主要目的是通過(guò)組裝零配件而產(chǎn)生一個(gè)新產(chǎn)品。最后通過(guò)一個(gè)套餐實(shí)例,介紹了建造者模式在實(shí)例中的基本使用手段。 歷史文章回顧: 設(shè)計(jì)模式專欄 深入理解單例模式 深入理解工廠模式 歷史優(yōu)質(zhì)文章推薦: 分布式系統(tǒng)的經(jīng)典基礎(chǔ)理論 可能是最漂亮的Spring事務(wù)管理詳解 面試中關(guān)于Java虛擬機(jī)(jvm)的問(wèn)題看這篇就夠了 無(wú)論是在現(xiàn)實(shí)世界中還是在軟件...

    sanyang 評(píng)論0 收藏0
  • 我的Java設(shè)計(jì)模式-建造模式

    摘要:汽車本身就是復(fù)雜產(chǎn)品對(duì)象,其制造過(guò)程可以形象的表示建造者模式。另一輛法拉利,。法拉利具體建造者代碼如下構(gòu)造法拉利的第一部分。咻咻法拉利已造好三建造者模式的優(yōu)缺點(diǎn)優(yōu)點(diǎn)降低代碼耦合度。 在未上大學(xué)之前,一直有個(gè)夢(mèng)想I have a dream!,就是能成為一位汽車工程師,一直幻想著開(kāi)著自己設(shè)計(jì)的汽車飛奔在公路上,迷倒了萬(wàn)千少女??瓤葉~雖然現(xiàn)在沒(méi)實(shí)現(xiàn)我的dream,但夢(mèng)想還是得有的。 說(shuō)到...

    elisa.yang 評(píng)論0 收藏0
  • PHP設(shè)計(jì)模式(五)建造模式(Builder)

    摘要:與工廠模式相比,建造者模式一般用來(lái)創(chuàng)建更為復(fù)雜的對(duì)象,因?yàn)閷?duì)象的創(chuàng)建過(guò)程更為復(fù)雜,因此將對(duì)象的創(chuàng)建過(guò)程獨(dú)立出來(lái)組成一個(gè)新的類導(dǎo)演類。 什么是建造者設(shè)計(jì)模式 建造者模式:將一個(gè)復(fù)雜對(duì)象的構(gòu)造與它的表示分離,使同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示的設(shè)計(jì)模式。 設(shè)計(jì)場(chǎng)景: 有一個(gè)用戶的UserInfo類,創(chuàng)建這個(gè)類,需要?jiǎng)?chuàng)建用戶的姓名,年齡,愛(ài)好等信息,才能獲得用戶具體的信息結(jié)果。如: 這是一個(gè)...

    KunMinX 評(píng)論0 收藏0
  • JavaScript設(shè)計(jì)模式系列三:建造模式

    摘要:優(yōu)點(diǎn)建造者模式的封裝性很好,對(duì)象本身與構(gòu)建過(guò)程解耦。建造者模式很容易進(jìn)行擴(kuò)展。適用場(chǎng)景需要生成的對(duì)象具有復(fù)雜得內(nèi)部結(jié)構(gòu)且內(nèi)部屬性本身相互依賴建造者模式的代碼實(shí)現(xiàn)建造者模式主要有個(gè)部分產(chǎn)品類建造者類指揮者類客戶。建造者完成相應(yīng)的部分。 建造者模式 建造者模式(builder pattern)比較簡(jiǎn)單,它屬于創(chuàng)建型模式的一種,將一個(gè)復(fù)雜的對(duì)象分解成多個(gè)簡(jiǎn)單的對(duì)象來(lái)進(jìn)行構(gòu)建,將復(fù)雜的構(gòu)建層與...

    CloudDeveloper 評(píng)論0 收藏0
  • JS 設(shè)計(jì)模式 八(建造模式)

    摘要:即建造者模式可以強(qiáng)制實(shí)行一種分步驟進(jìn)行的建造過(guò)程。指導(dǎo)類負(fù)責(zé)調(diào)用適當(dāng)?shù)慕ㄔ煺邅?lái)組建產(chǎn)品,指導(dǎo)類一般不與產(chǎn)品類發(fā)生依賴關(guān)系,與指導(dǎo)類直接交互的是建造者類建造者模式優(yōu)點(diǎn)建造者模式的封裝性很好。 建造者模式 將一個(gè)復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。主要解決在軟件系統(tǒng)中,有時(shí)候面臨著一個(gè)復(fù)雜對(duì)象的創(chuàng)建工作,由于需求的變化,這個(gè)復(fù)雜對(duì)象的某些部分經(jīng)常面臨著劇烈的變化...

    tanglijun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<