私の職場 (php のみ) には、データベース抽象化のための基本クラスがあります。新しいデータベース テーブルをベース レイヤーに追加する場合は、このベース クラスのサブクラスを作成し、いくつかのメソッドをオーバーライドして、このテーブルを使用するための個々の動作を定義する必要があります。通常の動作は同じままである必要があります。
今では、デフォルトの動作のメソッドをオーバーライドするだけの新しいプログラマーを会社でたくさん見てきました。すべてのデフォルトの動作を入れて、好きな場所に個々のものを追加するだけで「いい」ものもあれば、基本クラスとその継承者を使用しようとして自殺するものもあります。
この問題を解決するために私が最初に考えたのは、継承クラスによってオーバーライドされるべき抽象メソッドについて考えることでした。しかし、抽象メソッドに対する他の引数のほかに、「抽象」は、ベースクラスを単独で使用できない理由と、これらの関数をオーバーライドする必要がある理由を示していません。
いくつかグーグルで調べた後、PHPで「実際の」仮想関数を実装するための良い答えが見つかりませんでした(具体的な実装のすべての希望をほとんど殺してしまう仮想関数があるだけです)。
それで、あなたはこの問題をどうしますか?