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

Java設(shè)計模式-生成器模式

這篇具有很好參考價值的文章主要介紹了Java設(shè)計模式-生成器模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

前言

今天接到一個需求,是對 訂單做一些監(jiān)控。比如有提貨監(jiān)控、送貨監(jiān)控、出庫監(jiān)控。每一種類型的監(jiān)控,都有很多相應(yīng)的 字段需要去填充 相應(yīng)的值

Java設(shè)計模式:將一個復(fù)雜對象的構(gòu)建與它的 表示分離,使用同樣的構(gòu)建可以創(chuàng)建不同的表示。

適合該模式的情景:對象結(jié)構(gòu)復(fù)雜,利用單純的構(gòu)造方法無法滿足描述該對象的需求,對象創(chuàng)建過程獨(dú)立于創(chuàng)建該對象的類。

    public static class Order {
    
        private Method1 method1;

        private Method2 method2;

        private Method3 method3;
    }

比如創(chuàng)建上面這個 Order 對象,需要經(jīng)歷 method1、method2、method3 三個方法,已經(jīng)方法內(nèi)部的邏輯,這種對象的創(chuàng)建就比較符合用 設(shè)計模式-生成器模式 去做

生成器模式

生成器模式也成為建造者模式,生成器模式的意圖在于將一個復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。在軟件設(shè)計中,有時候面臨一個非常復(fù)雜的對象的創(chuàng)建工作。這個發(fā)雜的對象通??梢苑殖蓭讉€較小的部分,由各個子對象組合出這個復(fù)雜對象的過程相對來說比較穩(wěn)定,但是子對象的創(chuàng)建過程各不相同并且可能面臨變化。

實(shí)現(xiàn)步驟

(1). 定義一個生成器接口,里面分別是去構(gòu)建 Order 類三個屬性的方法。

public interface IControlBuild<T> {
    public void buildMethod1();
    public void buildMethod2();
    public void buildMethod3();
    //混合三個方法的構(gòu)建,返回 Order 對象
    public T composite();
}

(2).定義一個生成器類:
如果以后有針對其他的監(jiān)控,也可以實(shí)現(xiàn) IControlBuild 接口就行。

public class OrderGenerator implements IControlBuild<Order> {
    //order是成員變量
    Order order= new Order();
   
    @Override
    public void buildMethod1(){
    // build order by buildMethod1
    }
    @Override
    public void buildMethod2(){
    //你的邏輯
     // build order by buildMethod1
    }
    @Override
    public void buildMethod3(){
    //你的邏輯
     // build order by buildMethod1
    }
    //混合三個方法的構(gòu)建,返回 Order 對象
    public Order composite(){
    //你的邏輯
    }
}

composite 方法是用泛型,只是為了提高擴(kuò)展性,以后可能還有別的其他的監(jiān)控對象需要被構(gòu)建,就可以這樣

public class Other1Generator implements IControlBuild<Other1> {
    //order是成員變量
    Other1 other1= new Other1();
   
    @Override
    public void buildMethod1(){
    // build other1 by buildMethod1
    }
    @Override
    public void buildMethod2(){
    //你的邏輯
     // build other1 by buildMethod1
    }
    @Override
    public void buildMethod3(){
    //你的邏輯
     // build other1 by buildMethod1
    }
    //混合三個方法的構(gòu)建,返回 Order 對象
    public Other1 composite(){
    //你的邏輯
    }
}

(3).最后定義一個調(diào)度類,統(tǒng)一把 IControlBuild 接口的方法都調(diào)用起來。當(dāng)然如果沒有定義這個統(tǒng)一的調(diào)度類,那么你就需要在構(gòu)建對象的時候,逐一去調(diào)用 IControlBuild 三個構(gòu)建方法,但不建議這么去做文章來源地址http://www.zghlxwxcb.cn/news/detail-495831.html


public class ControlHandler<T> {

    private final IControlBuild<T> build;

    public ControlHandler(IControlBuild<T> build) {
        this.build = build;
    }

    //這個指揮類有一個build方法,在該方法中調(diào)用 接口的所有方法 生成
    public T build() {
        build.buildMethod1();
        build.buildMethod2();
        build.buildMethod3();
     
        return build.composite();
    }

//寫個main方法簡單測試一下
 public static void main(String[] args) {
        IControlBuild build = new OrderGenerator<Order>();
        ControlHandler<Order> handler= new ControlHandler(build);
        Order order = handler.build();
        System.out.println(order);
    }

}

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

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

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

相關(guān)文章

  • Java設(shè)計模式-前言

    Java設(shè)計模式-前言

    ?館長準(zhǔn)備了很多學(xué)習(xí)資料,其中包含 java方面,jvm調(diào)優(yōu),spring / spring boot /spring cloud ,微服務(wù),分布式,前端,js書籍資料,視頻資料,以及各類常用軟件工具,破解工具? 等資源。請關(guān)注“IT技術(shù)館”公眾號,進(jìn)行關(guān)注,館長會每天更新資源和更新技術(shù)文章等。請大家多多關(guān)

    2024年01月21日
    瀏覽(23)
  • 建造者模式(生成器模式)

    依賴倒轉(zhuǎn)原則 = 抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象 對流程進(jìn)行抽象,流程中具體細(xì)節(jié)依賴于這個抽象 過程是穩(wěn)定的,細(xì)節(jié)是不同的 建造者模式(Builder),將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示 建造者模式解析 Director:指揮者,是

    2024年04月15日
    瀏覽(21)
  • [go] 生成器模式

    生成器模式建議將對象構(gòu)造代碼從產(chǎn)品類中抽取出來, 并將其放在一個名為生成器的獨(dú)立對象中。 生成器 (Builder) 接口聲明在所有類型生成器中通用的產(chǎn)品構(gòu)造步驟。 具體生成器 (Concrete Builders) 提供構(gòu)造過程的不同實(shí)現(xiàn)。 具體生成器也可以構(gòu)造不遵循通用接口的產(chǎn)品

    2024年01月24日
    瀏覽(20)
  • 序列號及序列號生成器(號段模式,數(shù)據(jù)庫模式)詳細(xì)介紹(建議收藏)

    現(xiàn)如今,數(shù)據(jù)的唯一性和可追溯性變得越來越重要。從簡單的數(shù)據(jù)庫主鍵到復(fù)雜的分布式系統(tǒng),唯一標(biāo)識符在各種場景中都發(fā)揮著關(guān)鍵作用。序列號,作為一種廣泛應(yīng)用的唯一標(biāo)識符,為我們提供了確保數(shù)據(jù)完整性和一致性的基礎(chǔ)。在這個背景下,高效、可靠的序列號生成器

    2024年02月03日
    瀏覽(93)
  • Java-代碼生成器的實(shí)現(xiàn)

    Java-代碼生成器的實(shí)現(xiàn)

    最近看了一個開源的項(xiàng)目, jfinal-layui ,然后這個項(xiàng)目里面有一個 代碼生成器 的功能 之前雖然有用過代碼生成器,但是從來沒有看過相關(guān)的源碼,所以就研究了一下,個人感覺這個項(xiàng)目的代碼生成器還是蠻好的,能夠根據(jù)指定的數(shù)據(jù)庫和表生成前后端的代碼,不過這個項(xiàng)目

    2024年02月02日
    瀏覽(94)
  • JAVA - PO DTO 生成器

    假設(shè)你是一個Java 高級程序員,我會提供一些信息,你需要幫我自動生成Java的PO、DTO 對象。 這些信息有著固定的形式,第一行是對象的類名,其后的每一行都是該對象的屬性(簡稱“屬性”)。 對于我屬性,格式可能是小駝峰的形式,可能是全大寫命名法的格式,我需要你自動

    2024年02月10日
    瀏覽(23)
  • 畢業(yè)設(shè)計——基于java+vue開發(fā)的在線教育平臺,將開發(fā)PC、小程序、手機(jī)端,集成RABC權(quán)限+在線考試+文檔預(yù)覽+視頻播放+代碼生成器等功能

    完整項(xiàng)目地址:https://download.csdn.net/download/lijunhcn/88556337 本項(xiàng)目是基于java+vue開發(fā)的[在線教育平臺],將開發(fā)PC、小程序、手機(jī)端,集成RABC權(quán)限+在線考試+文檔預(yù)覽+視頻播放+代碼生成器等功能。 版本控制:git 依賴管理:maven 接口文檔:Swagger 權(quán)限驗(yàn)證:Spring Security 數(shù)據(jù)庫:

    2024年02月03日
    瀏覽(93)
  • 『造輪子』億級短URL生成器的架構(gòu)設(shè)計及源碼分享

    『造輪子』億級短URL生成器的架構(gòu)設(shè)計及源碼分享

    ??讀完這篇文章里你能收獲到 了解博主的短鏈生成的架構(gòu)設(shè)計思路 學(xué)習(xí)不同的短鏈技術(shù)方案選擇 學(xué)習(xí)基于混淆的自增短URL算法 了解博主造的輪子SuperShortLink短鏈開源項(xiàng)目 感謝點(diǎn)贊+收藏,避免下次找不到~ 短 URL 生成器,也稱作 短鏈接生成器 ,就是將一個比較長的 URL 生成

    2024年02月03日
    瀏覽(112)
  • 拿來就用的Java海報生成器ImageCombiner(一)

    拿來就用的Java海報生成器ImageCombiner(一)

    如果您是UI美工大師或者PS大牛,那本文一定不適合你;如果當(dāng)您需要自己做一張海報時,可以立馬有小伙伴幫您實(shí)現(xiàn),那本文大概率也不適合你。但是,如果你跟我一樣,遇上到以下場景,最近公司上了不少傳播方面的需求,需要合成各種營銷圖片。人事部和辦公室的小伙伴

    2024年01月17日
    瀏覽(23)
  • 『架構(gòu)實(shí)踐』探索億級短URL生成器的架構(gòu)設(shè)計與源碼分享

    『架構(gòu)實(shí)踐』探索億級短URL生成器的架構(gòu)設(shè)計與源碼分享

    ??讀完這篇文章里你能收獲到 了解博主的短鏈生成的架構(gòu)設(shè)計思路 學(xué)習(xí)不同的短鏈技術(shù)方案選擇 學(xué)習(xí)基于混淆的自增短URL算法 了解博主造的輪子SuperShortLink短鏈開源項(xiàng)目 感謝點(diǎn)贊+收藏,避免下次找不到~ 短 URL 生成器,也稱作 短鏈接生成器 ,就是將一個比較長的 URL 生成

    2024年02月09日
    瀏覽(1251)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包