【Rust日报】design-patterns-in-rust - Rust中的SOLID原则和策略模式

科技   2024-10-26 13:44   加拿大  

drugwars-rust - 用Rust语言重写的经典文本冒险游戏DrugWars的40周年纪念版本

drugwars-rust是一个用Rust语言重写的经典文本冒险游戏DrugWars的40周年纪念版本。该版本在保持原游戏体验的同时,提供了跨平台支持和更新的终端兼容性。它使用了与原版相同的单键命令,确保了流畅的游戏体验和快速的输入处理。该仓库提供了不同的构建和安装方式,包括普通发行版、LTO优化版本、本地安装等。另外,对于Git Bash和Mintty等终端,提供了特定的运行命令。

这个项目向怀旧的玩家呈现了一个经典游戏的现代化复刻版本。

https://github.com/urrickhunt/drugwars-rust

design-patterns-in-rust - Rust中的SOLID原则和策略模式

该文章首先介绍了SOLID设计原则,包括单一责任原则、开放封闭原则、里氏替换原则、接口隔离原则和依赖反转原则。这些原则有助于设计可维护和可扩展的面向对象系统。

然后,文章详细介绍了策略模式这种行为设计模式。策略模式定义了一族算法,将每个算法封装起来,并使它们可在运行时互换。这种模式基于组合的思想,通过将算法的行为与算法使用的客户端代码分离开来,可以灵活地改变算法。

文章以一个简化的交易系统为例,展示了如何在Rust中实现策略模式。系统中有三种不同的执行策略:TWAP、VWAP和POV。通过定义执行策略的公共接口trait,以及具体实现这些策略的结构体,实现了可插拔的策略。上下文OrderExecutor持有策略的引用,通过统一的execute方法调用具体策略的执行逻辑。客户端可以在运行时选择使用何种策略。

这篇文章清晰地介绍了SOLID原则和策略模式,并通过实例展示了在Rust中应用该模式的方式,很好地阐释了模式的结构和用法。

https://siddharthqs.com/design-patterns-in-rust

Shiva - Rust语言实现的文档解析和生成库

Shiva是一个用Rust语言实现的文档解析和生成库。它支持多种文档格式的相互转换,包括纯文本、Markdown、HTML、PDF、JSON、XML、CSV、RTF、DOCX、XLS、XLSX和ODS等。该库提供了一个通用的文档模型(CDM),解析器将文档解析为CDM,生成器从CDM生成目标文档格式。

该库支持解析和生成不同类型文档的标题、段落、列表、表格、图像、超链接、页眉和页脚等元素。它可以用作Cargo依赖库,也可以作为CLI工具和Web服务器使用。该项目欢迎社区贡献,贡献者需要实现相应的Trait接口来支持新的文档类型。该库使用Apache 2.0或MIT协议开源。

https://github.com/igumnoff/shiva

--

From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章