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

JAVA設計模式第九章:建造者模式

這篇具有很好參考價值的文章主要介紹了JAVA設計模式第九章:建造者模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

JAVA設計模式第九章:建造者模式,JAVA設計模式,java,設計模式,建造者模式

一. 什么是建造者模式

通過將對象的構建過程從表現(xiàn)層隔離出來,使得相同的構建過程可以用來創(chuàng)建不同的表現(xiàn)形式

二. 建造者模式解決了什么問題

用于簡化和優(yōu)化復雜對象的創(chuàng)建過程,提高創(chuàng)建效率和代碼可讀性;

三. 核心概念

3.1 四個角色

  1. Product(產(chǎn)品角色): 要創(chuàng)建的產(chǎn)品對象
  2. Builder(抽象建造者): 創(chuàng)建產(chǎn)品以及部件的接口定義
  3. ConcreateBuilder(具體建造者): 抽象建造者的具體實現(xiàn)
  4. Director(指揮者): 使用Builder接口的對象;

3.2 類圖

以手機制造為例
制造蘋果手機和小米手機
JAVA設計模式第九章:建造者模式,JAVA設計模式,java,設計模式,建造者模式

四. 代碼演示

/**
 * 手機 產(chǎn)品
 *
 * @author cans
 * @date 2024/2/18
 **/
public class PhoneProduct {

    private String cpu;

    private String arm;

    private String disk;

    public void setCpu(String cpu) {
        this.cpu = cpu;
    }

    public void setArm(String arm) {
        this.arm = arm;
    }

    public void setDisk(String disk) {
        this.disk = disk;
    }

    @Override
    public String toString() {
        return "PhoneProduct{" +
                "cpu='" + cpu + '\'' +
                ", arm='" + arm + '\'' +
                ", disk='" + disk + '\'' +
                '}';
    }
}

/**
 * 手機抽象建造者
 */
public interface PhoneBuilder {

    void buildCpu();

    void BuildArm();

    void buildDisk();

    PhoneProduct build();
}

/**
 * 蘋果手機建造者實現(xiàn)
 *
 * @author cans
 * @date 2024/2/18
 **/
public class IPhoneBuilderImpl implements PhoneBuilder {

    private final PhoneProduct product;

    public IPhoneBuilderImpl() {
        product = new PhoneProduct();
    }

    @Override
    public void buildCpu() {
        product.setCpu("A15");
    }

    @Override
    public void BuildArm() {
        product.setArm("4G");
    }

    @Override
    public void buildDisk() {
        product.setDisk("512G");
    }

    @Override
    public PhoneProduct build() {
        return product;
    }
}

/**
 * 小米手機建造者實現(xiàn)
 *
 * @author cans
 * @date 2024/2/18
 **/
public class MiPhoneBuilderImpl implements PhoneBuilder {

    private final PhoneProduct product;

    public MiPhoneBuilderImpl() {
        product = new PhoneProduct();
    }

    @Override
    public void buildCpu() {
        product.setCpu("澎湃S1");
    }

    @Override
    public void BuildArm() {
        product.setArm("12G");
    }

    @Override
    public void buildDisk() {
        product.setDisk("1024G");
    }

    @Override
    public PhoneProduct build() {
        return product;
    }
}

/**
 * 手機創(chuàng)建 - 指揮者
 * @author cans
 * @date 2024/2/18
 **/
public class PhoneDirector {

    private PhoneBuilder builder;

    public PhoneDirector(PhoneBuilder phoneBuilder){
        this.builder = phoneBuilder;
    }

    public void build() {
        builder.buildCpu();
        builder.BuildArm();
        builder.buildDisk();
    }
}

測試代碼1: 生產(chǎn)蘋果手機

    @Test
    public void buildIPhone(){
        PhoneBuilder builder = new IPhoneBuilderImpl();
        PhoneDirector director = new PhoneDirector(builder);
        director.build();
        PhoneProduct product = builder.build();
        System.out.println(product);
    }

測試1輸出:

PhoneProduct{cpu='A15', arm='4G', disk='512G'}

Process finished with exit code 0

測試代碼2: 生產(chǎn)小米手機
只需要更換對應的建造者實現(xiàn)即可

    @Test
    public void buildMiPhone(){
        PhoneBuilder builder = new MiPhoneBuilderImpl();
        PhoneDirector director = new PhoneDirector(builder);
        director.build();
        PhoneProduct product = builder.build();
        System.out.println(product);
    }

測試2輸出:文章來源地址http://www.zghlxwxcb.cn/news/detail-827003.html

PhoneProduct{cpu='澎湃S1', arm='12G', disk='1024G'}

Process finished with exit code 0

五. 總結

優(yōu)勢

  1. 建造過程和使用分離(解耦): 使用的時候無需關心建造過程,使用相同的創(chuàng)建過程即可創(chuàng)建不同的復雜對象
  2. 每一個建造者都相對獨立(符合開閉原則): 可以很方便地替換具體建造者或增加新的具體建造者,擴展方便
  3. 對象創(chuàng)建更加精細化(可維護性增強): 復雜問題拆分簡單化,大大增強了代碼的后期可維護性;

劣勢

  1. 產(chǎn)品之前差異性太大的不適用建造者模式
  2. 如果產(chǎn)品屬性相互依賴,需要維護建造順序

到了這里,關于JAVA設計模式第九章:建造者模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 03-JAVA設計模式-建造者模式

    03-JAVA設計模式-建造者模式

    建造者模式(Builder Pattern)是一種對象構建的設計模式,它允許你通過一步一步地構建一個復雜對象,來隱藏復雜對象的創(chuàng)建細節(jié)。 這種模式將一個復雜對象的構建過程與其表示過程分離,使得同樣的構建過程可以創(chuàng)建不同的表示。命名建議以Builder結尾,以達到見名之意。

    2024年04月15日
    瀏覽(29)
  • java設計模式之 - 建造者模式

    建造者模式(Builder Pattern)是一種創(chuàng)建型設計模式,它通過將對象的構建過程分離出來,使得同樣的構建過程可以創(chuàng)建不同的表示形式。 簡單來說,建造者模式允許你按步驟創(chuàng)建復雜的對象,同時將對象的構建與其表示分離。 主要解決的問題是當創(chuàng)建一個復雜對象時,如果

    2024年02月16日
    瀏覽(25)
  • Java 設計模式之建造者模式

    ????????在軟件開發(fā)中,設計模式是一種被廣泛使用的解決問題的方法。設計模式幫助我們更好地組織和管理代碼,提供了一種可靠和可復用的設計方案。在本篇文章中,我們將重點介紹一種常用的設計模式——建造者模式,并通過一個實際的案例來演示其應用。 ????

    2024年02月13日
    瀏覽(16)
  • Java建造者設計模式

    建造者模式(Builder Pattern)使用多個簡單的對象一步一步構建成一個復雜的對象。這種類型的設計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。一個 Builder 類會一步一步構造最終的對象。該 Builder 類是獨立于其他對象的。 Builder(抽象建造者) :它為創(chuàng)建一個產(chǎn)

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

    Java特性之設計模式【建造者模式】

    概述 建造者模式(Builder Pattern)使用多個簡單的對象一步一步構建成一個復雜的對象。這種類型的設計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式 一個 Builder 類會一步一步構造最終的對象。該 Builder 類是獨立于其他對象的 主要解決 :主要解決在軟件系統(tǒng)中,有

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

    建造者模式(Builder Pattern)是一種創(chuàng)建型設計模式,它允許你逐步構造復雜對象。該模式將對象的構建過程與其表示分離,使得同樣的構建過程可以創(chuàng)建不同的表示。 建造者模式的核心思想是將一個復雜對象的構建過程分解為多個簡單的步驟,通過一系列的步驟來逐步構建對

    2024年02月11日
    瀏覽(17)
  • 【Java設計模式】建造者模式 & 注解@Builder

    【Java設計模式】建造者模式 & 注解@Builder

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

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

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

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

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

    設計模式-建造者模式在Java中使用示例

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

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

    在日常的開發(fā)工作中,我們常常需要創(chuàng)建一些復雜的對象。這些對象可能包含許多不同的屬性,并且這些屬性的初始化過程可能相當復雜。在這種情況下,建造者模式是一種非常有用的設計模式,因為它允許我們分步驟地創(chuàng)建復雜的對象。 概念和原理: 建造者模式(Builder

    2024年02月09日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包