tetsunosukeのnotebook

tetsunosukeのメモです

オブジェクト指向をエンティティ的なクラスでやる場合

オブジェクト指向って難しいにて

class User
{
  private string strUserName;  //ユーザー名
  private string strCharaName; //キャラクタ名

  // 略

  public string userName
  {
    get
    {
      return strUserName;
    }
    set
    {
      strUserName = value;
    }
  }
}

こういうDBのカラムをイメージしたようなエンティティ的なクラス(モデル)を考えた場合、だいたいDBでもそうだけど、あるカラムがキーになっているパターンが多い。従って、id:hiko_sの言う

これだと例えば"userNameが「麻生太郎」なデータの存在チェック"をやろうと思うと、userの数だけぶん回してチェックする事になって「オブジェクト指向」っぽくない気がする。


という記述については、そもそもコンストラクタにて、

User aso = new User("麻生太郎");

っていうような呼び出しをすればいい。あとは、クラスのその他のメンバ変数はHashtableなりなんなりに突っ込んでおけばいいだろう。

C#はあまりよく知らないのでPHPで書くと(おっと今年はPHPはなるべくやらない宣言をしているのに・・・)

$user = array(
    'aso' => array('charaName' =< 'Taro', 'charaSex' => 'Male'...),
    'hanako'  => array('....')
);

というような結果になるように作ればいいと思う。