クラスを記述する場合は、あなたが「インスタンスとして必要なこの機能であるか、またはグローバル関数として?」自問し、これが最良の例で説明されています
class House {
private $door;
private $window;
private static $adverb;
public function __construct(Door $door, Window $window) {
$this->door = $door;
$this->window = $window;
}
public function placeNewDoor($door) {
$this->door = $door;
}
public function placeNewWindow() {
$this->window = $window;
}
public static function advertiseNeighborhood() {
echo "Advertisment! " . self::$adverb;
}
}
多くの家があり、それぞれがおそらくDoor
とWindow
を持っています。したがって、これらはそれぞれ、インスタンスメソッド/プロパティを取得します。ただし、Neighborhood
は1回のみ(自宅ではない)広告するので、機能は静的で、House::advertiseNeighborhood
でアクセスされます。
この例を投稿したのはなぜですか?インスタンス化する必要のない関数がある場合は、static
のままにしておく必要があります。複数のオブジェクトをインスタンス化するときにメモリリークが発生しないようにします。
あなたの実際の質問については、非常に大きなクラスを持つことは完全に容認できます。あなたのメモリを過度に使用しないようにしてください。
私はそうは思わない。もし私がそう思ったら、私はこの質問に「クラスが大きくなりすぎることはできないのですか? – Drew