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

資訊專欄INFORMATION COLUMN

建造者模式 + 構造方法的語義化實現

zhkai / 3385人閱讀

摘要:場景假設宏基筆記本僅由和內存組成,其中生產和內存的工序可以獨立出來交由各個廠商制造。具體代碼如下品種普通方法實現建造者模式實現內部類實現建造者品種客戶端調用,語義化躍然紙上。普通方法實現母一號土豬黑色建造者模式實現公黑珍珠白色

描述:一個復雜的對象由多個部件組成,每個部件可以獨立生成,部件的組裝過程交由指引者完成。

場景:假設宏基筆記本僅由CPU和內存組成,其中生產CPU和內存的工序可以獨立出來交由各個OEM廠商制造。

實現:

筆記本:

class AcerComputer {
    String cpu;
    String memory;
    AcerComputer(String cpu, String memory) {
        this.cpu = cpu;
        this.memory = memory;
    }
}

定義一個建造者:

interface Builder {
    public String createCPU();
    public String createMemory();
}

定義一個OEM,負責生成CPU、內存:

class OEM implements Builder {
    @Override
    public String createCPU() {
        return "CPU";
    }
    @Override
    public String createMemory() {
        return "內存";
    }
}

定義宏基公司,下定單讓OEM制造CPU和內存,它自己組裝成電腦:

class AcerCompany {
    private Builder builder;
    private String name;
    AcerCompany(Builder builder) {
        this.builder = builder;
        this.name = "宏基公司";
    }
    public AcerComputer create() {
        String cpu = builder.createCPU();
        String memory = builder.createMemory();
        return new AcerComputer(cpu, memory);
    }
}

客戶端調用:

public static void main(String[] args) {
    Builder builder = new OEM();
    AcerCompany acerCompany = new AcerCompany(builder);
    // 宏基電腦出廠了
    AcerComputer computer = acerCompany.create();
}

==============邪惡的分割線==========================================

利用建造者模式寫構造方法:

  

如果一個對象的構造參數非常多,可以考慮使用建造者模式構造參數,從而使得構造的過程更加語義化。

舉個“蘿卜”,我們要構造一頭豬,它的屬性有雌雄、年齡、品種、膚色等。具體代碼如下:

class Pig {
    String sex;
    int age;
    String varieties; // 品種
    String color; 
    // 普通方法實現
    Pig(String sex, int age, String varieties, String color) {
        this.sex = sex;
        this.age = age;
        this.varieties = varieties;
        this.color = color;
    }
    // 建造者模式實現
    Pig(Builder builder) {
        this.sex = builder.sex;
        this.age = builder.age;
        this.color = builder.color;
        this.varieties = builder.varieties;
    }
    // 內部類實現建造者
    static class Builder {
        String sex;
        int age;
        String varieties; // 品種
        String color; 
        public Builder sex(String sex) {
            this.sex = sex;
            return this;
        }
        public Builder age(int age) {
            this.age = age;
            return this;
        }
        public Builder varieties(String varieties) {
            this.varieties = varieties;
            return this;
        }
        public Builder color(String color) {
            this.color = color;
            return this;
        }
        public Pig build() {
            return new Pig(this);
        }
    }
}

客戶端調用,語義化躍然紙上。

public static void main(String[] args) {
    // 普通方法實現
    Pig pig1 = new Pig("母", 10, "一號土豬", "黑色");
    // 建造者模式實現
    Pig pig2 = new Pig.Builder().sex("公").age(5).varieties("黑珍珠").color("白色").build();
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64028.html

相關文章

  • 細談JavaScript中一些設計模式

    摘要:注意事項聲明函數時候處理業務邏輯區分和單例的區別,配合單例實現初始化構造函數大寫字母開頭推薦注意的成本。簡單工廠模式使用一個類通常為單體來生成實例。 @(書籍閱讀)[JavaScript, 設計模式] 常見設計模式 一直對設計模式不太懂,花了一下午加一晚上的時間,好好的看了看各種設計模式,并總結了一下。 設計模式簡介 設計模式概念解讀 設計模式的發展與在JavaScript中的應用 ...

    30e8336b8229 評論0 收藏0
  • JavaScript設計模式-建造模式

    摘要:建造者模式建造者模式將一個復雜對象的構建層與其表示層相互分離,同樣的構建過程可采用不同的表示。工廠模式主要是為了創建對象實例或者類簇抽象工廠,關心的是最終產出創建的是什么,而不關心創建的過程。 建造者模式 建造者模式將一個復雜對象的構建層與其表示層相互分離,同樣的構建過程可采用不同的表示。工廠模式主要是為了創建對象實例或者類簇(抽象工廠),關心的是最終產出(創建)的是什么,而不關心創建...

    CompileYouth 評論0 收藏0
  • Java設計模式之(三)——建造模式

    摘要:建造者模式實現建造者模式實現創建抽象建造者類創建具體建造者類。建造者模式使用場景建造者模式使用場景相同的方法,不同的執行順序,產生不同的事件結果時,可以采用建造者模式。1、什么是建造者模式 Separate the construction of a complex object from its representation so that the same constructi...

    Forelax 評論0 收藏0
  • #yyds干貨盤點#Java設計模式之(三)——建造模式

    1、什么是建造者模式Separate the construction of a complex object from its representation so that the same construction process can create different representations.將一個復雜對象的構建與它的表示分離, 使得同樣的構建過程可以創建不同的表示。 說人話:將構...

    番茄西紅柿 評論0 收藏2637
  • 工廠模式-設計模式

    摘要:不過怎么來說工廠方法模式是簡單工廠模式的升級版。其次,工廠模式是一種典型的解耦模式,迪米特法則在工廠模式中表現的尤為明顯。 工廠模式想必大家在開發過程中會經常用到,顧名思義其就是作為一個工廠用來生產產品的,下面來簡單介紹幾種常見的工廠模式。 0x01 簡單工廠模式 1、類圖結構showImg(/img/bVFf1t?w=531&h=278); 2、角色分類 工廠類:其內部具有一點的判...

    HtmlCssJs 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<