人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで、メソッドやプロパティをインスタンスに持たせるのかクラスに持たせるのかでいつも悩むのですが、よい判断基準はありますでしょうか?

端的にいうと、staticにするか否かということです。
あるクラスのインスタンスを1つしか作らないケースでは特に悩みます。

ちなみに、staticメソッドの中では$thisが使えない等の文法的制約は一通り理解しているつもりです。


●質問者: DQNEO
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●50ポイント

一回しか使わないんなら インスタンスでいいでしょう。
そのほうが 簡単だと思いますしね。


DQNEOさんのコメント
1回しか使わないのではなくて、1プロセス内でインスタンスを1個しか生成しないという意味です。 シングルトンと言えばよかったかもしれません。

DQNEOさんのコメント
どっちが簡単かというと、staticメソッドの方が簡単だと思います。 new しなくてよいわけですから。 MyClass::doSomething();

きゃづみぃさんのコメント
私のプログラミングのモットーは できるだけ わかりやすく、簡単に です。

2 ● tdoi
●50ポイント ベストアンサー

判断基準というほど厳密ではないですが、クラスの責務の考え方次第でしょうね。

シングルトンなオブジェクトであっても、データがカプセル化されていて、それに対する処理が必要ならば、そもそもstaticにすることができない訳ですから。
逆の言い方をするならば、名前空間の代わりにクラスを使う(処理に関するデータはすべて引数として渡し、メソッド間の依存関係がない)のであれば、staticの方がインスタンスを生成する必要がなくてよいかなと思います。


DQNEOさんのコメント
>名前空間の代わりにクラスを使うのであれば、staticの方がインスタンスを生成する必要がなくてよいかなと思います。 なるほど、やはりそうなんですね。 ありがとうございます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ