PHPでOOPat PHPPHPでOOP - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト408:nobodyさん 08/02/14 15:41:23 >>407 概ね同じ意見だけど、Cpersonalを実体化する必要ってあんまりなさそうだから、 自分はメソッドを staticにすることが多い。 あと、connection をオブジェクト内部にもってしまうと、そのオブジェクトはいつでも SQLを実行できてしまうので、引数で渡すようにしてる。 (まぁ、staticにしたら引数で渡すしかないけど) 409:nobodyさん 08/02/14 15:45:33 >>408 に補足 必要性がないというより、CTable (のサブクラス)のインスタンスをnewするということは、 意味論的には、そのテーブル自体を新規に生成するということだから、ちょっと気持ち悪い。 410:nobodyさん 08/02/14 15:48:44 >>389 > 私は、DBをPostgreSQLからMySQLへ変換する必要性も生じることを > 想定した設計をしただけだよ。 > こうやっておけば、書き換えるコードも少なくて済む。 とか言っておきながら、 > // コンストラクタ > function CSearch_Personal(){ > $db_info = ""; // ここでDB接続に必要な情報を入れる。 > $this->m_db = new CDB_PostgreSQL($db_info); > } CSearch_Personalのコンストラクタで CDB_PostgreSQL決め打ちなのはナンセンス。 DBをPostgreSQLからMySQLへ変換する必要性も生じることを想定した設計というのなら 設計としては、Personalデータを扱う(Search専用?)クラスは 接続するデータベースに依存すべきではない。 (限られた環境だけで動くものを作ればいいだけならどうでもいいが) 接続オブジェクト(CDB_PostgreSQL)はCSearch_Personalクラス外部から 与える。そのときの引数は(PHPに厳密な型は無いが)抽象クラスのCDB_Connection型で与える。 こうすることで、DBをPostgreSQLからMySQLへ変換する必要が生じたとき、 CSearch_Personalを一切修正しないですむ。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch