(VS2010 を使用。パフォーマンスは問題ではないと仮定します)。
すべてのプロパティ変更のイベントを実装する特定のオブジェクトがあります。オブジェクトをすべてのデフォルトのプロパティ値に「リセット」する必要がある場合があります。これを行う最も簡単な方法は、単純に新しいオブジェクトを作成することです:
Object1= New MyObject
ただし、元のオブジェクトのイベント サブスクライバーの場合、これはすべてのプロパティ値の変更に相当します。たとえば、サブスクライバーがプロパティへの更新のみをリッスンしている場合、A
新しいオブジェクトの構築の可能性も認識している必要があります。これにより、サブスクライバーに余分な労力がかかるようです。(たとえば、「NewObjectAssigned」イベントを作成する必要があり、プロパティ変更のサブスクライバーもそれを処理する必要があります。)
代わりに、オブジェクトに Reset メソッドを装備することを考えていたので、上記のコードは次のように変更されます。
Object1.Reset
そうすれば、Object1 の参照は変更されず、Reset
すべてのプロパティが手動でデフォルト値に変更されるため、すべての propertychanged イベントがトリガーされます。しかし、これも適切ではなく、単に新しいオブジェクトを宣言するのに比べて面倒です。すべてのプロパティを手動でリセットしたり、変更されたすべてのイベントを発生させたりするメソッドが必要になるのは気が引けると思います。新しいプロパティがクラスに追加されるたびに、このメソッドを更新することを覚えておく必要があります。あるいは、これは私が考えているほど問題ではないかもしれません。
これは十分に単純なシナリオであり、何らかの方法でこれに関するベスト プラクティスがあると確信しています。どちらが好ましいですか?