1

MVVM パターンについて多くを学ぶことで、MVVM パターンは非常に便利であり、日常的に遭遇する多くの問題を解決できることがわかりました。

しかし、それがOOPとどのように連携するかわかりません。OOP は常に、フィールドの非表示に注意するためにカプセル化するように指示します (コンストラクターで最初にフィールドを初期化し、それらを設定するためのそれ以上のアクセスはありません)。それで、それはどのように進みますか?実際の MVVM アプリケーションで多くの get/set クラスを定義しても問題ありませんか?

ありがとう、ジェイコブ

4

3 に答える 3

2

こんにちは、それが OOP の概念を壊しているとは思いません。パブリック プロパティを介してデータ メンバーを公開します。したがって、データの隠蔽があり、クラスのユーザーは、どのプロパティがどのデータを舞台裏で変更するかを設定することを知りません。プロパティのセッターには、検証ロジックと、クラスの状態を変更できる責任あるメソッド/プロパティのチェーンを含めることができます。したがって、カプセル化とデータの隠蔽があります。

ありがとう

于 2013-09-02T09:17:55.943 に答える
1

ここに vs はありません。MVVM は OOP 設計パターンです。プロパティは OOP の原則を破るものではなく、カプセル化の原則の適用です。つまり、オブジェクト データがどのようにアクセスまたは変更されるかを制御します。

カプセル化は、オブジェクトのデータ変更を避けるように指示するのではなく、注意して制御するように指示します。

詳細はこちら

于 2013-09-02T09:24:49.733 に答える
1

上記の回答によると、MVVM はそれを受け入れる OOP を壊しません。理想的には、読み取り/書き込みの性質を制限し、まとまりのあるプロパティ セットを独自のオブジェクトにカプセル化することによって、ソフトウェアの表面積を減らす必要があります。これにより、モデルの一部が不変になる可能性があります。ただし、編集要件がある場合、MVVM で不変データ モデル (DDD/Functional Programming の概念) に従うことは非常に困難です。

于 2013-09-02T09:27:58.187 に答える