【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);
}
相关推荐
r***12383 分钟前
Spring boot启动原理及相关组件
数据库·spring boot·后端
m***11909 分钟前
【SpringBoot】Spring Boot 项目的打包配置
java·spring boot·后端
李慕婉学姐23 分钟前
Springboot剪纸数字博物馆系统6wd19a3a(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·spring boot·后端
追逐时光者35 分钟前
精选 5 款 .NET 开源、实用的商城系统(Shop),快速商城二开利器!
后端·.net
追逐时光者1 小时前
一款基于 .NET + 计算机视觉技术开源免费、功能强大的原神智能辅助工具,一键解放双手!
后端·.net
90后小陈老师1 小时前
用户管理系统 05 实现后端注册功能 | Java新手实战 | 最小架构 | 期末实训 | Java+SpringBoot+Vue3
java·开发语言·spring boot·后端·spring·maven·mybatis
apigfly1 小时前
深入Android系统(十三)Android的窗口系统
android·设计模式·源码
k***85841 小时前
【SpringBoot】【log】 自定义logback日志配置
android·前端·后端
Source.Liu2 小时前
【Chrono库】NaiveTime - Serde 序列化实现(naive/time/serde.rs)
rust·time
canonical_entropy3 小时前
可逆计算的方法论来源
后端·低代码