私が見てきた以下のタイプのデザインは基本的に「薄い」クラスを持ち、あらゆるタイプの動作を除いています。セカンダリクラスは、挿入/更新/削除/取得に使用されます。どのようにこのタイプのデザインをクラスに分類しますか?
これは間違っていますか?それは反OOPですか?
User.cs
public class User
{
public string Username { get; set; }
public string Password { get; set; }
}
Users.cs
public class Users
{
public static User LoadUser(int userID)
{
DBProvider db = new DBProvider();
return dp.LoadUser(userID);
}
}
実際には、「ビジネスロジックをモデルにとらわれないモデルを維持する」ことは、「貧血ドメインモデル」とも呼ばれる非常に反抗的です。 OOPの全体のポイントは、データとその上で動作するロジックを保持することです。はい、広く使われています - なぜなら、ほとんどの人は依然としてOOPや手続き的なプログラムを理解していないからです。 –
銀色の弾丸はありません。 –
+1 Michaelのコメント。 – mquander