一、学习Rust设计模式20:策略模式
1、描述
策略模式是一种实现关注点分离的技术,其基本思想是,给定一个解决特定问题的算法,只在抽象层面定义算法的骨架,将具体的算法分成不同的部分。
2、示例
需求:输入data,生成报告,报告的格式可能是json,也可能是text。
采用策略模式设计如下:
Report提供生成报告功能,Report生成报告时使用Formatter格式化内容生成报告。将Formatter抽象成接口,然后具体的格式化算法(text、json)实现该接口。这样做的好处是,Report不用关注text、json这些具体算法的实现。
report包的代码如下:
json包代码如下:
text包代码如下:
从上面可以看出,我们可以实现多个具体的算法,只要其实现的Formatter trait即可,这些算法可以单独成包,极大的提高的程序设计的灵活性。
二、学习Rust设计模式21:访问器
1、描述
访问器模式允许在同一数据上写入多种不同的算法而不修改其数据(或主要行为)。
2、示例
定义一组数据,然后为定义方位数据的Visit trait,不同的算法实现该trait。
三、学习Rust设计模式22:生成器
1、描述
通过生成器的调用来构造一个对象。
2、示例
生成器对象提供配置和构建的方法,能够方便的构建对象,代码如下:
从上面的例子我们可以看出,通过TeacherBuilder,我们可以灵活的生成Teacher对象。
领取专属 10元无门槛券
私享最新 技术干货