访问者模式将数据操纵和数据结构分离,从而允许多个不同的访问者访问同一种数据结构。
范例
Rust 中的 serde 库就使用了访问者模式,因此支持将数据结构序列化/反序列化到不同的格式:
在实际使用中,结构体实现 Serialize 接口,然后使用不同的 Visitor 来调用 Serialize 接口就能将不同的结构体序列化到不同的格式中。
访问者模式的另一种常见用途是在遍历 AST 中。
访问者模式将数据操纵和数据结构分离,从而允许多个不同的访问者访问同一种数据结构。
Rust 中的 serde 库就使用了访问者模式,因此支持将数据结构序列化/反序列化到不同的格式:
在实际使用中,结构体实现 Serialize 接口,然后使用不同的 Visitor 来调用 Serialize 接口就能将不同的结构体序列化到不同的格式中。
访问者模式的另一种常见用途是在遍历 AST 中。