2016-08-19 18 views
0

私はMVVMですぐに遊んでいて、この状況に遭遇しました: オブジェクトのリストとオブジェクトの数を含むtableViewのモデルを作成しました。ViewModelは他のViewModelを返すことができます

class TableViewViewModel { 
    var count : Int = 0 
    var objects = [MyObjects]() 
    //... 
    func configure(objs: [MyObjects]){ 
     self.objects = objs 
     self.count = objs.count 
    } 
} 

のようなものはだから私は、これは全体のMVVMの哲学を壊すん

func getObjectAtIndex(index: Int) -> CellViewModel { 
    let cellObject = CellViewModel(objects[row]) 
    return cellObject 
} 

のようなものを追加しましたか?これはある種の反パターンですか?

これにはどのような方法が最適ですか?

答えて

1

最初私はMVCデザインを使用しています.AppleはMVCデザインパターンを使用しています。私は100%MVVMではないものの、IOSプログラミングにとっては最高のものです。

第2に、CellViewModelとして実際には「cellObject」と呼びますが、この命名規則は非常に混乱しています。

3番目と最後に、MVVMのデザインパターンをコンセプトにして、ViewModelsはetherViewModelsについて知ることができ、ViewsはetherViewについて知ることができます。私はまあまあです。

+1

お返事ありがとうございます。それは私が質問を書いている間に書きましたが、私はそれをcellVMに変更します。 MVVMの垂直部分を見ることが不可能なので、第3の部分に関しては、それは私の心配でした - 水平はまっすぐです。そして最初に、ルールはガイドラインにして、盲目的にはしないようにするべきですが、それは反パターンにつながるべきではないので、疑問です。再度、感謝します – Miknash

関連する問題