静态创建方法是一个Rust 关联函数 ,它返回一个新对象,该对象通常是该特定类型的实例。
在传统的OO语言中如Java有一个“构造函数”的概念,它是创建对象的默认类方法。
但是在Rust中“构造函数”被丢弃,因为都可以使用用静态创建方法实现。
猜猜这是什么模式:
impl Circle { |
它就是静态创建方法 (工厂方法的一个小亲戚)
在典型的构造函数习语中,没有办法优雅地处理构造错误,构造代码的复杂性也存在限制。
但是,如果都使用静态方式,则可以有任意数量的具有任何复杂逻辑的静态方法,例如从数据库加载。
有几种方法可以定义静态创建方法。
1、default():
来自 Default trait 的无参数构造方法。使用 default#[derive(Default)]或手动 trait 实现。
#[derive(Default)] |
2. 带有参数的自定义对象创建的手写new()方法:
impl Rectangle { |
3、from_
从自定义对象构造的前缀方法(您可以使用任何名称,但是,这是一种命名约定)。
let circle = Circle::from_shape(shape, 10, 20); |
4. 实现From<>
实现已知类型构造trait:
impl From<PriceData> for FormattedData { |
原型模式:
#[derive(Clone)] |
它是一个原型,一种创建模式,允许您复制现有对象而不依赖于它们的类型。
Rust 有许多类型的标准Clone实现(通过#[derive(Clone)]),这使得 Prototype 易于使用且无缝。