以下は、オブジェクトの状態を定義する列挙型と、この列挙型の実装を示すクラスの簡単な例です。
public enum StatusEnum
{
Clean = 0,
Dirty = 1,
New = 2,
Deleted = 3,
Purged = 4
}
public class Example_Class
{
private StatusEnum _Status = StatusEnum.New;
private long _ID;
private string _Name;
public StatusEnum Status
{
get { return _Status; }
set { _Status = value; }
}
public long ID
{
get { return _ID; }
set { _ID = value; }
}
public string Name
{
get { return _Name; }
set { _Name = value; }
}
}
クラス オブジェクトにデータベースからのデータを入力するとき、enum 値を「clean」に設定します。ほとんどのロジックをプレゼンテーション層から除外することを目標に、プロパティが変更されたときに列挙値を「ダーティ」に設定するにはどうすればよいでしょうか。
私は次のようなことを考えていました。
public string Name
{
get { return _Name; }
set
{
if (value != _Name)
{
_Name = value;
_Status = StatusEnum.Dirty;
}
}
}
クラスの各プロパティのセッターで。
これは良いアイデアのように聞こえますか?プレゼンテーション層でそれを行わずにダーティ フラグを割り当てる方法について、より良いアイデアを持っている人はいますか?