国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計(jì)模式——建造者模式

這篇具有很好參考價(jià)值的文章主要介紹了設(shè)計(jì)模式——建造者模式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

建造者模式(Builder Pattern)是一種創(chuàng)建型設(shè)計(jì)模式,它允許通過(guò)分步驟來(lái)構(gòu)建復(fù)雜對(duì)象。該模式的核心原理是將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表現(xiàn)形式。

原理

在建造者模式中,通常有以下角色:

  • 抽象建造者(Builder): 定義了創(chuàng)建產(chǎn)品對(duì)象的各個(gè)部分的接口,并定義了組裝產(chǎn)品的具體方法。
  • 具體建造者(ConcreteBuilder): 實(shí)現(xiàn)了抽象建造者接口,構(gòu)造和裝配各個(gè)部件以創(chuàng)建最終的產(chǎn)品對(duì)象。
  • 產(chǎn)品(Product): 是被構(gòu)建的復(fù)雜對(duì)象,包含多個(gè)可配置的部分。
  • 導(dǎo)演者(Director,可選): 負(fù)責(zé)協(xié)調(diào)建造者的工作流程,調(diào)用建造者的相關(guān)方法來(lái)一步步完成產(chǎn)品的構(gòu)建。

Java代碼示例

// 抽象產(chǎn)品類
public abstract class Computer {
    protected String motherboard;
    protected String cpu;
    protected String memory;

    // 其他屬性和方法...

    public abstract void buildMotherboard(String motherboard);
    public abstract void buildCpu(String cpu);
    public abstract void buildMemory(String memory);

    public abstract Computer getComputer();
}

// 具體產(chǎn)品類
public class DesktopComputer extends Computer {
    @Override
    public void buildMotherboard(String motherboard) {
        this.motherboard = motherboard;
    }

    @Override
    public void buildCpu(String cpu) {
        this.cpu = cpu;
    }

    @Override
    public void buildMemory(String memory) {
        this.memory = memory;
    }

    @Override
    public Computer getComputer() {
        return this;
    }
}

// 抽象建造者類
public abstract class ComputerBuilder {
    protected Computer computer;

    public ComputerBuilder() {
        computer = new DesktopComputer(); // 或其他實(shí)現(xiàn)類
    }

    public abstract void buildMotherboard();
    public abstract void buildCpu();
    public abstract void buildMemory();

    public Computer getComputer() {
        return computer;
    }
}

// 具體建造者類
public class HighEndDesktopBuilder extends ComputerBuilder {
    @Override
    public void buildMotherboard() {
        computer.buildMotherboard("High End Motherboard");
    }

    @Override
    public void buildCpu() {
        computer.buildCpu("Intel Core i9");
    }

    @Override
    public void buildMemory() {
        computer.buildMemory("64GB RAM");
    }
}

// 導(dǎo)演者類(可選)
public class Director {
    private ComputerBuilder builder;

    public Director(ComputerBuilder builder) {
        this.builder = builder;
    }

    public Computer constructComputer() {
        builder.buildMotherboard();
        builder.buildCpu();
        builder.buildMemory();
        return builder.getComputer();
    }
}

// 使用示例
public class Client {
    public static void main(String[] args) {
        ComputerBuilder builder = new HighEndDesktopBuilder();
        Director director = new Director(builder);
        Computer highEndPC = director.constructComputer();
        System.out.println(highEndPC);
    }
}

想象你正在經(jīng)營(yíng)一家電腦裝配店,客戶可以選擇定制自己的臺(tái)式機(jī)。抽象建造者就像是一個(gè)裝配說(shuō)明書,列出了裝機(jī)的所有步驟;具體建造者則按照說(shuō)明書中每一步驟去實(shí)際安裝主板、CPU和內(nèi)存等配件;而導(dǎo)演者則是根據(jù)客戶的訂單要求,指揮建造者按正確的順序進(jìn)行裝配。最后得到的就是一臺(tái)完全符合客戶需求的定制化臺(tái)式電腦。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-794599.html

應(yīng)用場(chǎng)景

  • 復(fù)雜對(duì)象的構(gòu)建:當(dāng)一個(gè)對(duì)象具有多個(gè)屬性,且不同屬性之間有不同的組合方式時(shí),使用建造者模式可以靈活地控制創(chuàng)建過(guò)程。
  • 需要生成不同結(jié)構(gòu)或內(nèi)容的對(duì)象系列:例如創(chuàng)建XML或JSON文檔,或者創(chuàng)建不同配置選項(xiàng)的產(chǎn)品等。
  • 需要解耦構(gòu)造過(guò)程與表示過(guò)程:在不暴露內(nèi)部細(xì)節(jié)的情況下,能獨(dú)立改變產(chǎn)品的內(nèi)部結(jié)構(gòu)。

適用性

  • 當(dāng)一個(gè)對(duì)象的構(gòu)建過(guò)程非常復(fù)雜,需要許多步驟并且各步驟間有一定的順序關(guān)系時(shí)。
  • 當(dāng)希望用戶只關(guān)注結(jié)果,而不關(guān)心構(gòu)建過(guò)程以及具體的實(shí)現(xiàn)細(xì)節(jié)時(shí)。
  • 當(dāng)需要為對(duì)象的不同構(gòu)造過(guò)程提供不同的表示時(shí),即同一構(gòu)建過(guò)程可以產(chǎn)生多種不同表現(xiàn)形式的產(chǎn)品。

到了這里,關(guān)于設(shè)計(jì)模式——建造者模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java建造者設(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ì)象的。 Builder(抽象建造者) :它為創(chuàng)建一個(gè)產(chǎn)

    2024年02月15日
    瀏覽(23)
  • Java特性之設(shè)計(jì)模式【建造者模式】

    Java特性之設(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ì)象的 主要解決 :主要解決在軟件系統(tǒng)中,有

    2024年02月07日
    瀏覽(18)
  • Java與設(shè)計(jì)模式(6):建造者模式

    建造者模式(Builder Pattern)是一種創(chuàng)建型設(shè)計(jì)模式,它允許你逐步構(gòu)造復(fù)雜對(duì)象。該模式將對(duì)象的構(gòu)建過(guò)程與其表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。 建造者模式的核心思想是將一個(gè)復(fù)雜對(duì)象的構(gòu)建過(guò)程分解為多個(gè)簡(jiǎn)單的步驟,通過(guò)一系列的步驟來(lái)逐步構(gòu)建對(duì)

    2024年02月11日
    瀏覽(17)
  • JAVA設(shè)計(jì)模式第九章:建造者模式

    JAVA設(shè)計(jì)模式第九章:建造者模式

    通過(guò)將對(duì)象的構(gòu)建過(guò)程從表現(xiàn)層隔離出來(lái),使得相同的構(gòu)建過(guò)程可以用來(lái)創(chuàng)建不同的表現(xiàn)形式 用于簡(jiǎn)化和優(yōu)化復(fù)雜對(duì)象的創(chuàng)建過(guò)程,提高創(chuàng)建效率和代碼可讀性; Product(產(chǎn)品角色): 要?jiǎng)?chuàng)建的產(chǎn)品對(duì)象 Builder(抽象建造者): 創(chuàng)建產(chǎn)品以及部件的接口定義 ConcreateBuilder(具體建造者): 抽

    2024年02月19日
    瀏覽(19)
  • 【Java設(shè)計(jì)模式】建造者模式 & 注解@Builder

    【Java設(shè)計(jì)模式】建造者模式 & 注解@Builder

    將一個(gè)復(fù)雜對(duì)象的構(gòu)造與它的表示分離 ,使同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。它使將一個(gè)復(fù)雜的對(duì)象分解成多個(gè)簡(jiǎn)單的對(duì)象,然后一步步構(gòu)建而成。 每一個(gè)具體建造者都相對(duì)獨(dú)立,而與其它的具體建造者無(wú)關(guān),因此可以很方便地替換具體建造者或增加新的具體建造者,

    2024年02月14日
    瀏覽(19)
  • 【Java 設(shè)計(jì)模式】創(chuàng)建型之建造者模式

    【Java 設(shè)計(jì)模式】創(chuàng)建型之建造者模式

    在軟件開發(fā)中,建造者模式是一種創(chuàng)建型設(shè)計(jì)模式, 它將一個(gè)復(fù)雜對(duì)象的構(gòu)建與其表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示 。建造者模式通常包括一個(gè)指導(dǎo)者(Director)類和多個(gè)建造者(Builder)類,指導(dǎo)者負(fù)責(zé)組織建造者的構(gòu)建過(guò)程,而建造者負(fù)責(zé)具體的構(gòu)建步

    2024年01月21日
    瀏覽(20)
  • 設(shè)計(jì)模式-建造者模式在Java中使用示例

    設(shè)計(jì)模式-建造者模式在Java中使用示例

    復(fù)雜對(duì)象的組裝與創(chuàng)建 沒(méi)有人買車會(huì)只買一個(gè)輪胎或者方向盤,大家買的都是一輛包含輪胎、方向盤和發(fā)動(dòng)機(jī)等多個(gè)部件的完整汽車。 如何將這些部件組裝成一輛完整的汽車并返回給用戶,這是建造者模式需要解決的問(wèn)題。 建造者模式又稱為生成器模式,它是一種較為復(fù)雜

    2024年02月16日
    瀏覽(27)
  • Java設(shè)計(jì)模式之建造者模式詳解(Builder Pattern)

    在日常的開發(fā)工作中,我們常常需要?jiǎng)?chuàng)建一些復(fù)雜的對(duì)象。這些對(duì)象可能包含許多不同的屬性,并且這些屬性的初始化過(guò)程可能相當(dāng)復(fù)雜。在這種情況下,建造者模式是一種非常有用的設(shè)計(jì)模式,因?yàn)樗试S我們分步驟地創(chuàng)建復(fù)雜的對(duì)象。 概念和原理: 建造者模式(Builder

    2024年02月09日
    瀏覽(26)
  • Java設(shè)計(jì)模式之創(chuàng)建型-建造者模式(UML類圖+案例分析)

    Java設(shè)計(jì)模式之創(chuàng)建型-建造者模式(UML類圖+案例分析)

    目錄 一、基本概念 二、UML類圖 三、角色設(shè)計(jì)? 四、案例分析 五、總結(jié) 建造者模式是一種創(chuàng)建型設(shè)計(jì)模式,它使我們將一個(gè)復(fù)雜對(duì)象的構(gòu)建步驟分離出來(lái),使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。該模式的目的是將構(gòu)建復(fù)雜對(duì)象的過(guò)程抽象化,從而減少代碼的重復(fù)和復(fù)雜

    2024年02月15日
    瀏覽(25)
  • 【java設(shè)計(jì)模式】創(chuàng)建型模式介紹(工廠模式、抽象工廠模式、單例模式、建造者模式、原型模式)

    簡(jiǎn)介 本文介紹Java設(shè)計(jì)模式中創(chuàng)建型模式的五種 一、工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式。 工廠模式提供了一種將對(duì)象的實(shí)例化過(guò)程封裝在工廠類中的方式。通過(guò)使用工

    2024年02月16日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包