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

用Rust實現(xiàn)23種設計模式之建造者模式

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

當使用 Rust 實現(xiàn)建造者模式時,我們可以通過結構體和方法鏈來實現(xiàn)。建造者模式是一種創(chuàng)建型設計模式,它允許你按照特定的順序構建復雜對象,同時使你能夠靈活地構建不同的變體。下面是一個使用 Rust 實現(xiàn)建造者模式的示例,
在示例中,我們首先定義了要構建的復雜對象的結構體 Product ,它具有三個部分。

然后,我們定義了建造者結構體 Builder ,它具有與 Product 結構體相同的三個可選字段,表示正在構建的產品的各個部分。

在 Builder 結構體中,我們實現(xiàn)了一系列方法,用于設置產品的各個部分,并使用方法鏈的方式來方便地設置多個部分。

最后,我們在 build 方法中檢查是否所有的部分都已設置,如果缺少某個部分,則會觸發(fā)斷言錯誤。然后,我們從建造者中獲取各個部分,并使用它們構建一個 Product 實例。

在 main 函數(shù)中,我們創(chuàng)建了一個建造者實例,并使用方法鏈設置各個部分。最后,我們通過調用 build 方法來構建產品,并輸出構建的產品的各個部分。

通過建造者模式,我們可以按照特定的順序構建復雜對象,并且可以根據(jù)需求構建不同的變體,同時保持代碼的可讀性和可維護性。文章來源地址http://www.zghlxwxcb.cn/news/detail-624488.html

// 定義要構建的復雜對象的結構體
struct Product {
    part1: String,
    part2: String,
    part3: String,
}
 // 定義建造者結構體
struct Builder {
    part1: Option<String>,
    part2: Option<String>,
    part3: Option<String>,
}
 impl Builder {
    // 創(chuàng)建一個新的建造者實例
    fn new() -> Self {
        Builder {
            part1: None,
            part2: None,
            part3: None,
        }
    }
     // 設置第一部分
    fn set_part1(&mut self, part1: String) -> &mut Self {
        self.part1 = Some(part1);
        self
    }
     // 設置第二部分
    fn set_part2(&mut self, part2: String) -> &mut Self {
        self.part2 = Some(part2);
        self
    }
     // 設置第三部分
    fn set_part3(&mut self, part3: String) -> &mut Self {
        self.part3 = Some(part3);
        self
    }
     // 構建產品
    fn build(&self) -> Product {
        // 檢查是否所有的部分都已設置
        assert!(
            self.part1.is_some() && self.part2.is_some() && self.part3.is_some(),
            "部分缺失,無法構建產品"
        );
         // 從建造者中獲取各個部分
        let part1 = self.part1.clone().unwrap();
        let part2 = self.part2.clone().unwrap();
        let part3 = self.part3.clone().unwrap();
         // 返回構建的產品
        Product { part1, part2, part3 }
    }
}
 fn main() {
    // 創(chuàng)建建造者實例
    let mut builder = Builder::new();
     // 通過方法鏈設置各個部分
    builder
        .set_part1("Part 1".to_string())
        .set_part2("Part 2".to_string())
        .set_part3("Part 3".to_string());
     // 構建產品
    let product = builder.build();
     // 輸出構建的產品
    println!(
        "構建的產品:part1={}, part2={}, part3={}",
        product.part1, product.part2, product.part3
    );
}

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

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

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

相關文章

  • Gof23設計模式之狀態(tài)模式

    【例】通過按鈕來控制一個電梯的狀態(tài),一個電梯有開門狀態(tài),關門狀態(tài),停止狀態(tài),運行狀態(tài)。每一種狀態(tài)改變,都有可能要根據(jù)其他狀態(tài)來更新處理。例如,如果電梯門現(xiàn)在處于運行時狀態(tài),就不能進行開門操作,而如果電梯門是停止狀態(tài),就可以執(zhí)行開門操作。 問題分

    2024年02月07日
    瀏覽(28)
  • Gof23設計模式之責任鏈模式

    責任鏈模式又名職責鏈模式,為了避免請求發(fā)送者與多個請求處理者耦合在一起,將所有請求的處理者通過前一對象記住其下一個對象的引用而連成一條鏈;當有請求發(fā)生時,可將請求沿著這條鏈傳遞,直到有對象處理它為止。 職責鏈模式主要包含以下角色: 抽象處理者(

    2024年02月09日
    瀏覽(25)
  • Gof23設計模式之橋接外觀模式

    又名門面模式,是一種通過為多個復雜的子系統(tǒng)提供一個一致的接口,而使這些子系統(tǒng)更加容易被訪問的模式。該模式對外有一個統(tǒng)一接口,外部應用程序不用關心內部子系統(tǒng)的具體的細節(jié),這樣會大大降低應用程序的復雜度,提高了程序的可維護性。 外觀(Facade)模式包含

    2024年02月15日
    瀏覽(22)
  • Gof23設計模式之模板方法模式

    定義一個操作中的算法骨架,而將算法的一些步驟延遲到子類中,使得子類可以不改變該算法結構的情況下重定義該算法的某些特定步驟。 模板方法(Template Method)模式包含以下主要角色: 抽象類(Abstract Class):負責給出一個算法的輪廓和骨架。它由一個模板方法和若干個

    2024年02月13日
    瀏覽(20)
  • Gof23設計模式之單例模式(完整)

    單例模式(Singleton pattern)是Java中最簡單的設計模式之一。這種設計模式屬于創(chuàng)建型模型,它提供了一種創(chuàng)建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建。這個類提供了一種訪問其唯一的對象的方式,可以直接訪

    2024年02月10日
    瀏覽(26)
  • GOF 23 種設計模式應用場景分析

    本文看下GOF 23 種設計模式應用場景,詳細的還是通過文章給出參考鏈接學習下。 參考這篇文章 。 有幾種產品需要創(chuàng)建,比如創(chuàng)建紅蘋果,青蘋果,綠蘋果,這些對象通過一個對象就可以。 參考這篇文章 。 有幾種產品需要創(chuàng)建,但是每種產品不能簡單的通過一個對象來表示

    2024年02月16日
    瀏覽(28)
  • 【設計模式】23種設計模式——建造者模式Builder(原理講解+應用場景介紹+案例介紹+Java代碼實現(xiàn))

    【設計模式】23種設計模式——建造者模式Builder(原理講解+應用場景介紹+案例介紹+Java代碼實現(xiàn))

    建造者模式又叫生成器模式,是一種對象構建模式。它可以將復雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現(xiàn)方法可以構造出不同屬性的對象 建造者模式是一步一步創(chuàng)建一個復雜的對象,它允許用戶只通過指定復雜對象的類型和內容就可以構建它們,不

    2024年02月16日
    瀏覽(25)
  • 【設計模式——學習筆記】23種設計模式——建造者模式Builder(原理講解+應用場景介紹+案例介紹+Java代碼實現(xiàn))

    【設計模式——學習筆記】23種設計模式——建造者模式Builder(原理講解+應用場景介紹+案例介紹+Java代碼實現(xiàn))

    建造者模式又叫生成器模式,是一種對象構建模式。它可以將復雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現(xiàn)方法可以構造出不同屬性的對象 建造者模式是一步一步創(chuàng)建一個復雜的對象,它允許用戶只通過指定復雜對象的類型和內容就可以構建它們,不

    2024年02月15日
    瀏覽(26)
  • 創(chuàng)建型模式 (Creational Patterns) 玄子Share 設計模式 GOF 全23種 + 七大設計原則

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NWLAOFtO-1691793071647)(./assets/%E7%8E%84%E5%AD%90Share%20%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%20GOF%20%E5%85%A823%E7%A7%8D%20+%20%E4%B8%83%E5%A4%A7%E8%AE%BE%E8%AE%A1%E5%8E%9F%E5%88%99.png)] GoF(Gang of Four)是四位計算機科學家(Erich Gamma、Ri

    2024年02月12日
    瀏覽(28)
  • 用Rust實現(xiàn)23種設計模式之 代理模式

    代理模式是一種結構型設計模式,它允許通過代理對象來控制對真實對象的訪問。以下是代理模式的優(yōu)點和使用場景: 控制訪問 :代理模式可以控制對真實對象的訪問,可以在訪問前后進行一些額外的操作,如權限驗證、緩存等。 解耦和靈活性 :代理模式將客戶端與真實對

    2024年02月14日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包