2017-04-02 5 views
0

私は単純な文字列パラメータからプロセスを実行するViewModelをいくつか持っています。私は、コードを繰り返さないように、すべて同じメソッドを使用するようにします。MVVM:ほとんどのViewModelで使用されるメソッドの配置場所

私はこのメソッドをViewModelBaseに置くことを考えていましたが、とにかくコードを複製しませんでしたか?

+3

なぜコードを複製すると思いますか? –

+1

継承の目的は、コードの複製を削除し、派生クラスに同じメソッドを使用させることです。だから、 'ViewModelBase'があなたのケースでは正しい解決策であると思われます。 – Fabio

+0

最も簡単なのは、ViewModelBaseにメソッドを追加して、すべてのビューがそのメソッドを継承することです。これはコードを複製しません。 –

答えて

1

あなたは、呼び出したいメソッドを含む小さなヘルパークラスを作成するのはどうですか?

+2

ViewModelのメリットの1つ(MVVMパターン)は、テスト容易性です。静的な "ヘルパー"メソッドを使用すると、このメソッドを "模擬する"可能性がなくなります。 – Fabio

4

私はこのメソッドをViewModelBaseに入れることを考えていましたが、とにかくコードを複製しませんか?

いいえ1つの基本クラスのメソッドを定義すると、コードの重複が発生する可能性がありますか?

すべての(またはほぼすべての)ビューモデルで使用できるメソッドがあり、すべてのビューモデルが継承する共通の基本クラスもある場合は、基本クラスの共通メソッドをa良いアイデア。これは、最初に共通の基底クラスを使用する主な目的です。

関連する問題