• 单例Singleton能让您确保仅存在一个同类对象,同时提供对该实例的全局访问点。 Singleton 是一个全局可变对象,就Rust而言, 它是一个static mut项目,这反过来意味着 
  • 观察者是一种行为设计模式,它允许一些对象通知其他对象其状态的变化。 在 Rust中,定义订阅者的一种便捷方法是将函数 作为可调用对象,并通过复杂的逻辑将其传递给事件发布者。 首先看看一个直观天真
  • 责任链是一种行为设计模式,它允许沿着潜在处理程序链传递请求,直到其中一个处理请求。 责任链也称为职责链,功能链或过滤器模式,当有很多过滤器,无法依附于原有被过滤的对象,可以独立出来成为独立通用的一个大的过滤器集合时,就从decorator模式转为责 icon
  • 装饰器又称为油漆工模式,是一种结构模式,在不改动原有结构和代码的情况下,增加新行为、新功能或新职责,就像在原来油漆基础上再刷新油漆。也可以称为过滤器模式,当然,过滤器模式更接近于职责链模式,当过滤器很多,专门需要组成一个链条时,就成了职责链模式,但是如果只有几个过滤器,而这几个过滤器 icon
  • 策略将一组动作行为转化为对象(动词变名词),并使它们在原始上下文对象中可互换。 Rust实现创建一个表示公共接口的trait并多次实现该trait: icon
  • 状态模式与有限状态机 (FSM) 概念相关,但是,每个状态都由实现公共状态特征的单独类型表示,而不是实现大量条件语句。状态之间的转换取决于每种状态类型的特定 trait 实现。Rust 中的状态模式在Rust Book中有详细描述:  icon
  • 代理是一种结构设计模式,它提供一个对象来替代客户端使用的真实服务对象。代理接收客户端请求,执行一些工作(访问控制、缓存等),然后将请求传递给服务对象。 例如诸如 Nginx 之类的 Web 服务器 icon
  • 命令是将请求或简单操作转换为对象的行为设计模式。 首先看看stackoverflow上一个朴素天真的 icon
  • 适配器是一种结构设计模式,它能让具有不兼容接口的对象进行协作。 这里案例中:有一个call函数只接受接口 (trait)为Target的参数: icon
  • Facade(外观、总管)是一种结构设计模式,它为复杂的类、库或框架系统提供了一个简化的(但有限的)接口。 API其实是一种Facade模式的实现,在API背后隐藏了一个复杂的逻辑。Facade模式类似于组合模式,都是将复杂或繁杂Compl icon
  • 原型模式:一种创建模式,允许您复制现有对象而不依赖于它们的类型。原型Prototype允许克隆对象,甚至是复杂的对象,而无需耦合到它们的特定类。 Rust 有许多类型的标准Clone实现(通过#[derive(Clone)]),这使得Pro icon
  • Flyweight(缓存/享元)是一种结构设计模式,它允许程序通过保持低消耗来支持大量的对象。它可以是一个隐藏在类似 Facade 的 API 后面的内部缓存。缓存存储从多个对象引用的共享部分。 Flyweight是让weight重量的东西 icon
  • 桥Bridge模式是将业务逻辑或巨大的类型划分为独立的类型层次,可以独立开发。 案例,遥控器能遥控电视或收音机等设备,将遥控器与被遥控操作的设备分离,由于有共同的接口,相同的遥控器可以与不同的设备一起工作,估计是通过红外,这样的遥控器称为万能遥控器 icon
  • 中介者Mediator模式在Rust在实现很难,因为其他语言中的典型 Mediator 实现是 Rust 中的经典反模式:许多对象相互持有可变的交叉引用,试图相互变异,这在 Rust 中是一个致命的罪过——编译器不会通过你的第一个天真实施,除非它过于简单化。 icon
  • 迭代器是一种行为设计模式,它允许顺序遍历复杂的数据结构而不暴露其内部细节。 标准迭代器迭代器在Rust惯用语中被大量使用: icon
  • 组合Composite属于一种树状结构的组成结构,这种结构属于繁杂Complicated,而不是复杂性的Complex,繁杂和复杂区别是:前者你可以控制它,花费时间和力气以及认真态度就能解决,而后者则是你无法认知它,因为它太复杂了,如同盲人摸象,你认识到只是事物的一个方面而已。 icon
  • Memento允许制作对象状态的快照并能在以后恢复这些状态。 icon
  • 静态创建方法是一个Rust 关联函数 ,它返回一个新对象,该对象通常是该特定类型的实例。在传统的O icon