首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学习Rust设计模式20-22

一、学习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对象。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230315A08XPI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券