OOP と手続き型の違い、いつどちらを使用するか、利点が余分なオーバーヘッド、構文の学習、継承の混乱などを上回るかどうかについて、数え切れないほどの質問があることを私は知っています。必要かどうかではありません。
私は通常、何をしているかに応じて、同じサイト スクリプト内で OOP とプロシージャルを混在させます。私はまだ OOP にかなり慣れていませんが、OOP のモジュール性と、それがもたらす利点は、多少のオーバーヘッドはあるものの、実際には非常に気に入っています。ただし、継承は時々少し混乱することがあります。
私にとって、主な利点は、コードの編成と保護の改善にあるように思えます。そのうち、開発者または開発者チームだけがそれを高く評価しています。展開速度にはケースがあると思いますが、他の誰かの鳥の巣を継承していない限り、ほとんどのサイトではそれほど多くはありません:)
ただし、特に実行速度がほとんどのサイトの聖杯である場合、ほとんどの PHP アプリで OOP は必要ですか? ミリ秒のオーバーヘッドは、頻繁に使用するサイトでない限り、実際には気付かないでしょうが、電子音楽の速度のファンとしては王様です!
ゲームやリアルタイム クラウド ソフトウェアなどの複雑なもので OOP を使用していますが、静的な Web サイトはありますか? データベースの重いものでも?
OOPの恩恵を受ける典型的なサイトの実際の例を誰かが持っていますか?その理由は?
両方のケースが適切に構成されていると仮定すると、ebay や monster.co.uk のような頻繁に使用されるサイトは、OOP または手続き型 () の速度向上からより多くの恩恵を受けるでしょうか? なぜ?
少なくともプロシージャルを使用すると、クラス、拡張機能、およびインターフェイスをチェックするためにスクリプトをあちこち移動することなく、トップダウンでデバッグできます。
明確な MVC と十分にコメントされたコードを使用して、OOP モジュラー思考を適用することはできませんか?
たとえば、再利用可能な関数をインクルード ファイルに保持し、関連する関数をグループ化します。私がしなければならないことは、クラス ファイルと同じようにファイルをインクルードし、関数を呼び出すことだけです。関数を変更する必要がある場合は、クラスと同様に 1 か所で変更されます。
そして、一種の継承は、宣言するためにフープをジャンプする必要なく、手続き型に既に存在します。あなたは同じレベルのコントロールを持っていませんが、仕事をうまく素早く終わらせます.
親関数内で関数をグループ化してクラスをシミュレートし、セレクター関数を使用してそれらにアクセスすることもできます。しかし、それは少し遠いです!
また、私が知っている限り、関数が呼び出されたときにメモリにとどまり、その後の使用が速くなります。一方、OOP では、2 つの異なる変数に対して同じ関数を使用するために、さまざまなメソッドの 2 つのオブジェクトを作成する必要があります。私が間違っている場合は修正してください。
手続き型で値を直接参照できるのに、なぜオブジェクトを作成し、メソッドを使用して値を「取得」するのですか?
ここまでたどり着いたのはよくできましたが、こんなにたくさんタイプしたことに気づきませんでした。とにかく、これ以上脱線する前に、ここで終了します。
したがって、OOP または手続き型の恩恵を受ける実際のサイトまたはサイトの一部の良い例があれば、明確にしていただければ幸いです。