ウェブサイトやプロジェクトに取り組んでいるとき、インターフェースを使用しますか?使用する際に注意すべき点は何ですか?
たとえば、mysql 拡張関数を使用してカプセル化されたデータベース操作クラス DBMySQL を作成し、よく使用されるいくつかのメソッド (getAll、getOne、delById、delAll、update、save など) を作成しました。
現在、mysql 拡張機能は公式 Web サイトによって完全に廃止されているため、mysqli または pdo-mysql 拡張機能を使用してデータベース操作クラス
をカプセル化するのを手伝ってくれるよう同僚に頼みました。
もしかしたら、彼のスタイルは私の元のスタイルとは異なるかもしれません。彼はそれを Get_All、Get_One などと呼びたいのかもしれません。あるいは、delById と delAll はもう必要ないので、1 つの Del メソッドを統合する必要があると感じています。
このように、新しい操作クラスを使用したい場合は、元の操作クラスを使用するプロジェクト内のすべての場所を変更する必要があります。
別の状況を考えてみましょう。私は mysqli が使いやすいと考えており、同僚 A は PDO-mysql が使いやすいと考えており、モジュールを作成する同僚 C は私がどれでも使えると考えています。ただし、同僚 C に一連の mysqli メソッドと別の一連の pdo-mysql メソッドを作成するよう依頼することは不可能です。mysqli メソッドを使用してデータベース操作クラスを閉じ、pdo-mysql メソッドを使用してデータベースを閉じることもできます。次に、同じ機能を実装する 2 つの操作クラスのメソッド名とパラメーターが同じであることが規定されるため、同僚 C はモジュールとロジックの作成に集中できます。
それでは、同僚の A と私が作成したデータベース操作クラスのメソッドの一貫性を確保するにはどうすればよいでしょうか?これがインターフェイスが使用される目的です。それを実装するすべてのクラスは、それが指定するメソッドを持たなければならず、それ以外のものは機能しないと規定されています。このように、インターフェースを記述してメソッドを指定すれば、同僚 C はこのインターフェースを参照して、このインターフェースのメソッドを呼び出すことができます。