SwiftUI 决定放置逻辑的最佳 viewModel
SwiftUI Deciding the best viewModel to put logic
比方说,我有一个类似于 Instagram 的应用程序。有一个名为 ItemView
的视图,它显示有关项目的详细信息。在此视图中,有一个按钮可以保存该项目供以后使用。和 Instagram 完全一样。
我有两个视图模型。 ItemViewModel
用于 ItemView,另一个名为 UserViewModel
class ItemViewModel: ObservableObject {
@Published var item: Item
init(item: Item) {
self.item = item
}
// here?
func saveItem() {
//
}
}
class UserViewModel: ObservableObject {
@Published var savedItems: [SavedItem] = []
@Published var item: Item
init(item: Item) {
self.item = item
}
// or here?
func saveItem(item: Item) {
//
}
}
所有已保存项目的数组,因为它们属于用户,所以保存在 UserViewModel
。
问题是 saveItem()
的这个功能属于 ItemViewModel
是因为这个按钮在 ItemView
中还是属于 UserViewModel
因为这是特定于用户和用户可以保存项目吗?哪个 viewModel 更适合这个?
如果saveItem属于用户,用户有责任处理,所以saveItem()属于UserViewModel。
比方说,我有一个类似于 Instagram 的应用程序。有一个名为 ItemView
的视图,它显示有关项目的详细信息。在此视图中,有一个按钮可以保存该项目供以后使用。和 Instagram 完全一样。
我有两个视图模型。 ItemViewModel
用于 ItemView,另一个名为 UserViewModel
class ItemViewModel: ObservableObject {
@Published var item: Item
init(item: Item) {
self.item = item
}
// here?
func saveItem() {
//
}
}
class UserViewModel: ObservableObject {
@Published var savedItems: [SavedItem] = []
@Published var item: Item
init(item: Item) {
self.item = item
}
// or here?
func saveItem(item: Item) {
//
}
}
所有已保存项目的数组,因为它们属于用户,所以保存在 UserViewModel
。
问题是 saveItem()
的这个功能属于 ItemViewModel
是因为这个按钮在 ItemView
中还是属于 UserViewModel
因为这是特定于用户和用户可以保存项目吗?哪个 viewModel 更适合这个?
如果saveItem属于用户,用户有责任处理,所以saveItem()属于UserViewModel。