既存のプロジェクトでは、私自身の扱いを定義するためにSingletonとして宣言されたControllerクラス(MVC)を継承します。このシングルトンクラスを適切に派生させるにはどうすればよいですか?C++シングルトンクラス - 継承良い練習
まず、私は文脈を拡大し、この継承を必要とします。
私が既存のソフトウェアに追加したアプリケーションは、実行したいのとほぼ同じタスクを実行するMVCモジュールを使用したいと考えています。それは署名とわずかな修正まで同じ方法を使用しています。私自身のMVCモジュールを書き直すことは、確かにコードの重複になります。既存のモジュールは、ソフトウェアの別の部分への適用に向けて本質的に指向しており、私は単に同じモジュールを使用することはできません。しかし、コントローラーがシングルトンのモデルビューコントローラーパターンとして記述されています。私はすでにViewを派生しました。
第二に、私はクラシッククラスを派生させることができるのではないかと疑う。
継承されたクラスのコンストラクタを呼び出すと、親クラスのgetinstance()が呼び出され、派生クラス(?)からオブジェクトが返されません。
第3に、対処方法がわかります。コメントしてください/改善に役立つ!
私はAbstractControllerを呼び出すことができるクラスでシングルトンクラス全体をコピーします。私はこのクラスを2度派生します。最初の子はシングルトンで、親クラスのすべての処理を採用しています。 2番目の子は、独自の再定義された処理を持つ、アプリケーションの私の部分のコントローラです。
ありがとうございます!
ほとんどの場合、クラスにシングルトンの基本クラスがある場合、それは完全に無用です:派生クラスのインスタンスは決して作成できません。そのようなインスタンスはそれぞれ基本クラスのインスタンスになるためあなたはそれらの別のものを作ることを許されていません。 (私は "合理的な"例外を想像することができますが、基底クラスが*念頭に置かれているという考えで具体的に*設計されている場合のみ) – Hurkyl