以下のような状況に対処するための設計パターンはおそらく十分だと思いますが、拡張クラスの上書きメソッドの代わりに、具体的にはMVCモデル
基本的な問題
問題のescenseはその後、私は方法myMethod
でmyClass
を持っていると私はmyClass
を拡張するクラスextClass
を持っていると私はextMethod
に少し異なる動作を持つようにmyMethod
をしたいと言っているI拡張クラス内のメソッドを上書きすることができますが、重複したコードを持つことになります。
具体的な詳細
私は挿入と削除が実行される方法を定義するベースモデルクラスを持っているところ私が対処しようとしている具体的な問題は、MVCを使用しています。いくつかのデータベーステーブルでは、基本クラスを継承し、挿入/削除メソッドを上書きしてトリガーを追加してレコードバージョンを作成するクラスversion_model
で行われるレコードのバージョン管理を実装しています。これは、いくつかの特定のデータベーステーブルモデルの場合を除いては問題ありません。ノミナル化されたテーブル(人テーブル>アドレスなど)への挿入を自動的に処理するカスタム挿入/削除メソッドを定義したいと思います。これは、どちらが拡張するかによって、version_modelまたはbase_modelのいずれかからコードをコピーする必要がある場合を除いて、問題ありません。
これはフックで解決できると思っていたので、私のversion_modelとbase_modelのinsert/deleteメソッドは 'before_insert()'と 'after_insert()'メソッドを呼び出し、ベース機能を複製せずに追加機能を追加できました。これを行うより良い方法はありますか?
ちょうど私が探していた答えのちょうど種類!どうもありがとうございました! – rgvcorley
喜んで:) –