Trait 与多态 (Traits & Polymorphism)
Trait 是 Flurry 中定义共享行为的主要方式。它们类似于其他语言中的接口 (Interfaces) 或协议 (Protocols),允许你定义一组方法签名,然后不同的类型可以实现这些方法。Trait 是 Flurry 实现抽象、代码复用以及多态性的核心机制。
多态性(Polymorphism)指的是代码可以处理多种不同类型的值的能力。Flurry trait系统主要通过以下方式支持多态:
- 静态分派 (Static Dispatch): 基于泛型和 Trait 约束,在编译时确定调用哪个具体实现。
- 动态分派 (Dynamic Dispatch): 在运行时根据对象的实际类型确定调用哪个实现,Flurry 提供了两种主要的动态多态机制。
本章将深入探讨:
- Trait 的定义与实现 (
trait
,impl
,derive
),以及孤儿原则。 - 独特的
extend
机制,用于作用域受限的行为扩展和字面量拓展。 - Flurry 支持的动态多态方式:传统的 Trait Object (
dyn Trait
) 与基于枚举的 Tagged Polymorphism。 - 使用
using
实现组合与接口委托。
理解 Trait 和多态机制对于编写可扩展、可维护和抽象良好的 Flurry 代码至关重要。