【发布时间】:2019-05-20 20:47:41
【问题描述】:
我有一个这样快速编写的 viewModel:
public protocol NewsViewModel {
var imageString: String? { get }
var title: String? { get }
var dateString: String? { get }
var action: (() -> ())? { get set}
}
那么我的核心数据对象符合viewModel如下:
extension NewsDataObject {
private func viewModel(action: (() -> ())?) -> NewsViewModel {
struct NewsViewModelDefault: NewsViewModel {
var imageString: String?
var title: String?
var dateString: String?
var action: (() -> ())?
}
return NewsViewModelDefault(imageString: imgUrlString,
title: articleTitle,
dateString: pubDate,
action: action)
}
}
在 viewModel 中使用 action 是个好习惯吗?如果是或否,有什么优点和缺点?
【问题讨论】:
-
视图模型只是模型的代理,所以真正的问题是:动作可以成为模型的一部分吗?我可以想象这样的场景。那么这个动作对你的业务逻辑有影响吗?
标签: ios swift core-data mvvm viewmodel