Rust 中博客文章工作流的状态模式实现与优化
1. 状态模式简介
状态模式是一种面向对象的设计模式,其核心在于一个值拥有内部状态,该状态由一组状态对象表示,并且值的行为会根据内部状态的变化而改变。在 Rust 中,我们使用结构体和特征(trait)来替代对象和继承。每个状态对象负责自身的行为以及何时转换到其他状态,而持有状态对象的值对状态的不同行为和状态转换时机一无所知。
使用状态模式的好处在于,当程序的业务需求发生变化时,我们只需更新某个状态对象内部的代码来更改规则,或者添加更多的状态对象,而无需修改持有状态的值的代码或使用该值的代码。
2. 博客文章工作流示例
我们将逐步实现一个博客文章工作流,其最终功能如下:
1. 博客文章初始为空白草稿。
2. 草稿完成后,请求对文章进行审核。
3. 文章审核通过后,进行发布。
4. 只有已发布的博客文章才能返回内容进行打印,未审核通过的文章不会意外发布。
以下是该工作流的代码示例:
// src/main.rs
use blog::Post;
fn main() {
let mut post = Post::new();
post.add_text("I ate a salad for lunch today");
assert_eq!("", post.content());
post.request_review();
assert_eq!("", post.content());
post.approve();
a
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



