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。