SwiftUI决定放置逻辑的最佳viewModel

问题描述 投票:0回答:1

我说有一个与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更适合?

ios swift mvvm swiftui swift5
1个回答
0
投票

如果saveItems属于用户,则用户有责任对此进行处理,因此saveItem()属于UserViewModel。

© www.soinside.com 2019 - 2024. All rights reserved.