您的位置:首页 > 新闻 > 热点要闻 > 沈阳男科私立医院_乐陵森森鱼缸专卖店电话_电商网站建设 网站定制开发_十种营销方法

沈阳男科私立医院_乐陵森森鱼缸专卖店电话_电商网站建设 网站定制开发_十种营销方法

2024/12/21 23:48:15 来源:https://blog.csdn.net/m0_37719524/article/details/143559641  浏览:    关键词:沈阳男科私立医院_乐陵森森鱼缸专卖店电话_电商网站建设 网站定制开发_十种营销方法
沈阳男科私立医院_乐陵森森鱼缸专卖店电话_电商网站建设 网站定制开发_十种营销方法

Rust实现命令模式

  • 什么是命令模式
  • 命令模式的应用场景
  • 命令模式的在Rust中的关系图
  • Rust中的命令模式代码示例
  • 运行结果
  • 总结


什么是命令模式

命令模式,即通过统一接口,如C#interface,亦或C++中的抽象类的=0方法,通过定义统一的接口,在定义不同的对象,为之接口实现具体的方法逻辑,再通过统一的管理类,将其存储在容器中如List或Deque等,在真正执行的时候按照顺序依次执行接口定义的方法就像执行命令一样。

命令模式的应用场景

  1. 常见的 Server数据库执行操作。
  2. Tracing 错误跟踪
  3. Server端在处理请求时。
  4. and so on

命令模式的在Rust中的关系图

命令模式的在Rust中的关系图

Rust中的命令模式代码示例

trait Execute {fn execute(&self) -> String;
}struct Login {username: String,password: String,
}impl Execute for Login {fn execute(&self) -> String {// Simulate login logicif self.username == "admin" && self.password == "secret" {format!("login admin logged in")} else {format!("login customer logged in")}}
}struct Logout {username: String,
}impl Execute for Logout {fn execute(&self) -> String {// Simulate logout logicformat!("{} Logout!", self.username)}
}struct Server {requests: Vec<Box<dyn Execute>>,
}impl Server {fn new() -> Self {Self { requests: vec![] }}fn add_request(&mut self, request: Box<dyn Execute>) {self.requests.push(request);}fn handlers(&self) -> Vec<String> {self.requests.iter().map(|req| req.execute()).collect()}
}fn main() {let mut server = Server::new();server.add_request(Box::new(Login {username: "admin".to_string(),password: "secret".to_string(),}));server.add_request(Box::new(Login {username: "bob".to_string(),password: "bob".to_string(),}));server.add_request(Box::new(Login {username: "men".to_string(),password: "men".to_string(),}));server.add_request(Box::new(Logout {username: "men".to_string(),}));server.add_request(Box::new(Logout {username: "bob".to_string(),}));let handlers = server.handlers();for handler in handlers {println!("{}", handler);}
}

运行结果

login admin logged in
login customer logged in
login customer logged in
men Logout!
bob Logout!

总结

命令模式较为常用,尤其实在后端开发中,了解掌握命令模式对服务器框架源码理解也有好处,模式不是必选项,而是锦上添花。

“我们从来都不清楚选择正确与否,只是努力的将选择变得正确.”

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com