访问者模式将数据操纵和数据结构分离,从而允许多个不同的访问者访问同一种数据结构。

范例

Rust 中的 serde 库就使用了访问者模式,因此支持将数据结构序列化/反序列化到不同的格式:

Diagram

在实际使用中,结构体实现 Serialize 接口,然后使用不同的 Visitor 来调用 Serialize 接口就能将不同的结构体序列化到不同的格式中。

访问者模式的另一种常见用途是在遍历 AST 中。

Last moify: 2022-12-04 15:11:33
Build time:2025-07-18 09:41:42
Powered By asphinx