我的用例是我向各种返回不同外部数据类型的API发出请求。然后我必须使用从其他API检索的其他元数据来装饰数据。然后我会根据客户的需求返回响应。
首先,我正在请求数据,根据这些结果,我正在检索每个数据的相应元数据。
到目前为止我的方法:
我关注#3(编辑:我关注的是#4,而不是#3)。在适应的内部类型上使用访客模式是否合适或是否有更简单的方法?创建访问者操作是不是一个好习惯,每个操作都以不同的方式按顺序改变对象? (即设置数据对象列表中的字段)
答案 0 :(得分:0)
根据我们在聊天中的讨论:
使用访客模式
突变已调整的内部对象
实际上,您的要求可以使用Builder模式而不是访问者模式来实现,因为您必须逐渐构建对象。
Visitor是行为模式,它用于不同的目的:
必须对结构中分组的不同类型的对象执行类似的操作
相关的SE问题:
When would you use the Builder Pattern?
When should I use the Visitor Design Pattern?
使用适配器模式
将外部类型转换为内部接口
Adapter是一种结构模式。如果要将外部接口转换为内部接口(结构),可以使用适配器模式。
如果要将外部对象转换为内部对象,则可以在没有任何模式的情况下实现它。你只需要一个转换函数(在Builder
的行上)。
查看相关的SE问题(没有模式的对象转换):