ホームページ >バックエンド開発 >PHPチュートリアル >PHP の初心者は次のような質問をしたいと思います。いつクラスを使用する必要があり、いつ関数を使用する必要がありますか?
一部の問題は、クラスまたは関数を直接使用して解決できます。また、一部の PHP フレームワークでは、多くのクラスのメソッドがこのクラスのインスタンスに依存する必要がありません。これらのメソッドは手段的なメソッドであり、この場合でも、これらのクラスには属性 (変数) がありません。クラスを使用する方が良いのは何ですか? static を宣言しない場合は、呼び出す前にインスタンス化する必要がありますが、これは関数よりもはるかに面倒です。では、なぜ多くの PHP クラス ライブラリは、少数の関数で実現できる関数を実装するために多数のクラスを使用するのでしょうか?
それでは、どのような状況で function を使用する必要があり、どのような状況で class を使用する必要があるのでしょうか?
一部の問題は、クラスまたは関数を直接使用して解決できます。また、一部の PHP フレームワークでは、多くのクラスのメソッドがこのクラスのインスタンスに依存する必要がありません。これらのメソッドは手段的なメソッドであり、この場合でも、これらのクラスには属性 (変数) がありません。クラスを使用する方が良いのは何ですか? static を宣言しない場合は、呼び出す前にインスタンス化する必要がありますが、これは関数よりもはるかに面倒です。では、なぜ多くの PHP クラス ライブラリは、少数の関数で実現できる関数を実装するために多数のクラスを使用するのでしょうか?
それでは、どのような状況で function を使用する必要があり、どのような状況で class を使用する必要があるのでしょうか?
クラスの機能は、関数をパッケージ化することです。複数の関数をモジュール (クラス) にパッケージ化する必要がある場合は、単体の関数の代わりにクラスを使用します。
それをいつ使用するかは個人の意見と地域の状況の問題です。完璧な答えを追求する必要はありません。
質問者さんはオブジェクト指向の哲学を十分に理解していないのではないかと思います。
オブジェクト指向クラスは、多数の関数をモジュールにカプセル化するほど単純ではありません。これにより、コード世界のさまざまなものを 1 つのオブジェクト (オブジェクト) に抽象化し、それにアクションとラベルを与えることができます。つまり、メソッドとプロパティです。
たとえば、ユーザー メンバーがログインして投稿でき、名前が Chang Wei である場合、ログイン方法と投稿方法、および名前属性を与えることができます。
したがって、あなたの質問に対する私の答えは、それが非常に小さな関数またはオブジェクトに結合されていない非常に一般的な関数である場合は関数を使用し、それ以外の場合はクラスを使用することです。
あなたが言ったように、これは非常に興味深い質問です:「どのような状況で関数を使用する必要があり、どのような状況でクラスを使用する必要がありますか?」
何が起こっているのですか? 3 つの例を挙げてください:
過去と比較して、エンタープライズレベルのソフトウェアシステムはより大規模かつ複雑になり、より頻繁に変更され、複雑さを軽減し、変化に対処する方法がソフトウェアエンジニアリングの研究を促進し、高級言語の進化も引き起こしました。より強力な表現力を発揮します。設計面では、分解、抽象化、階層構造などを用いて複雑さを軽減し、変化に対応します。
オブジェクト指向テクノロジーによって与えられるブラインド処方には、抽象化、カプセル化、モジュール性、階層、型、同時実行性、永続性などの原則が含まれます。古くから伝わる伝統薬も数多くあります。また、『プログラミング スタイル』、『コード エンサイクロペディア』、『アジャイル ソフトウェア開発 - 原則、パターン、実践』、『読みやすいコードを書く技術』、『ソフトウェア デザイン リファクタリング』、『エンタープライズ アプリケーション アーキテクチャ パターン』などの多くの古典も残しています。 》 》……
それで、答えは何でしょうか?わかりませんが、おそらく、複雑なシステムで自分自身を苦しめ、実践を導くためのいくつかの原則を理解し、知識と行動を統合する必要があるかもしれません。
ツール関数が多数ある場合は、ツールクラスで静的関数として呼び出す方が明確ですし、目的別にツール関数を分類するのにも便利です。
カテゴリー。
リーリー