我有一个关于毒蛇架构和泛型协议的有趣问题。
似乎演示者和交互者交流很多(用于获取和接收数据)。
但交互器的“输出”函数将始终相同
有点像
func dataFetched(object: JSONObject)
如果你有10个模块,你将有10倍的这个函数,只有改变了的JSONObject。。。
可以用类似的东西吗
protocol Ouput {
associatedType Object
func dataFetched(object: Object)
}
然后在演示者中选择对象的类型?
我希望这足够清楚。
谢谢你的帮助。
最佳答案
如果JSONObject是一个实体,那么演示者不应该知道它。相反,interactior应该返回可转换为ViewModel的多形类型。然后演示者可以将此视图模型传递到视图。因此,交互器输出可能如下所示:
func didFetched(object: ViewModelConvertible)