【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);
}
相关推荐
武子康10 分钟前
大数据-272 Spark MLib-Spark MLlib 逻辑回归实战:二分类场景下的原理与代码实现
大数据·后端·spark
IT_陈寒25 分钟前
Vue的响应式更新把我坑惨了,原来问题出在这里
前端·人工智能·后端
dLYG DUMS28 分钟前
Spring Cloud Data Flow 简介
后端·spring·spring cloud
Honmaple1 小时前
2026 年做短视频,这 5 个 AI 技能插件我把每个都跑通了
后端
j_xxx404_1 小时前
用系统调用从零封装一个C语言标准I/O库 | 附源码
linux·c语言·开发语言·后端
覆东流1 小时前
第4天:Python输入与输出
后端·python·photoshop·输入与输出
倒霉蛋小马2 小时前
SpringBoot3中配置Knife4j
java·spring boot·后端
我叫黑大帅2 小时前
从零实现一个完整 RAG 系统:基于 Eino 框架的检索增强生成实战
后端·面试·go
NotFound4862 小时前
实战分享怎样实现Spring Boot 中基于 WebClient 的 SSE 流式接口操作
java·spring boot·后端
码事漫谈10 小时前
大模型输出的“隐性结构塌缩”问题及对策
前端·后端