【Rust设计模式之建造者模式】

Rust设计模式之建造者模式


什么是建造者模式

即将结构体属性方法与构建解离,使用专门的builder进行建造,说白了就是new和其他的方法分开,集中处理更方便。


直接上代码:

rust 复制代码
#[derive(Debug)]
struct children {
    name: String,
    age: u32,
}

impl children {
    pub fn find_generator() -> Generator {
        Generator::default()
    }
}
#[derive(Default)]
struct Generator {
    name: String,
    age: u32,
    //... and so on...
}

impl Generator {
    pub fn new() -> Generator {
        Generator {
            name: String::from("generator"),
            age: 11,
            //... and so on...
        }
    }
    pub fn buildchildren(self) -> children {
        children {
            name: self.name,
            age: self.age,
            //... and so on...
        }
    }
}

fn main() {
    let child_from_generator = Generator::new().buildchildren();
    println!("{:?}", child_from_generator);
}
相关推荐
studyForMokey4 分钟前
【Android面试】设计模式专题
android·设计模式·面试
Ares-Wang6 分钟前
flask》》Blueprint 蓝图
后端·python·flask
饺子大魔王的男人9 分钟前
不想再给云存储交月费?Go2RTC + EasyNVR 让摄像头录像留在本地不花钱
后端·数据分析
techdashen10 分钟前
Rust 在安全关键软件:机遇、挑战与未来之路
人工智能·安全·rust
Rust研习社11 分钟前
Rust 并发同步:Mutex 与 RwLock 智能指针
开发语言·后端·rust
skilllite作者14 分钟前
为什么我认为 Hermes 需要说明 self-evolution 的设计来源
人工智能·算法·rust·openclaw·agentskills
geovindu14 分钟前
go: Abstract Factory Pattern
开发语言·后端·设计模式·golang
架构源启15 分钟前
深度解析:Spring Boot + Apache OpenNLP 构建企业级 NLU 系统
spring boot·后端·apache
战斗强18 分钟前
从零搭建内网文件共享平台:WebDAV + AList + OnlyOffice 完整部署指南
后端·onlyoffice·文件共享·alist·webdav
skilllite作者22 分钟前
SkillLite 架构优化分析报告:项目开发日记
大数据·开发语言·后端·架构·rust·rust沙箱