私は何かをするためのクラスを作成しましたが、しばらくすると、他の多くのクラスが機能を共有していることがわかったので、基本クラス(C#で抽象化)を実装し、すべてを共有することにしました。
そのようなクラスをインスタンス化することはできないので、それをデバッグする方法は?
基本クラスを開発するための実際的な考慮事項はありますか?
私は何かをするためのクラスを作成しましたが、しばらくすると、他の多くのクラスが機能を共有していることがわかったので、基本クラス(C#で抽象化)を実装し、すべてを共有することにしました。
そのようなクラスをインスタンス化することはできないので、それをデバッグする方法は?
基本クラスを開発するための実際的な考慮事項はありますか?
抽象クラスのデバッグ
抽象クラスのデバッグを妨げるものは何もありません。子クラスをデバッグするときに、デバッガーは必要に応じて親クラスの実装に自動的にリダイレクトします。
クラス階層の設計
.NETで継承するのは簡単ですが、明確なクラス階層がないと、保守がすぐに難しくなる可能性があります。
継承は、OOでの再利用を確実にする唯一の方法ではありません。
役立つ可能性のあるいくつかの推奨事項:
interfaces
するのが良い選択かもしれません)テストする必要がある場合は、次の2つのいずれかを実行できます。
1)抽象的ではない基本クラスを持つことができるので、基本をインスタンス化してテストすることができます。
2)テストプロジェクトでは、ベースの周りにモックラッパーを作成し、モックをテストできます。
そのようなクラスをインスタンス化することはできないので、それをデバッグする方法は?
それを実際にテストする方法(つまり単体テスト)を尋ねている場合、私は通常、基本クラスから継承するテストクラスを作成し、その方法でテストします。実際にデバッグすることについて質問している場合は、実行中のアプリケーションで子クラスを使用してインスタンス化すると、他のクラスと何ら変わりはありません。それは理にかなっていますか?
基本クラスを開発するための実際的な考慮事項はありますか?
何年にもわたって、私はこれについて2つの学校を聞いてきました:1)基本クラスに入れられる一般的なものと2)それが真の継承でない場合は基本クラスを作成しないでください。私は前者に合わせてデザイン/コーディングする傾向がありますが、#2には、デザインカウンターをある程度直感的にすることができるというメリットがあります。ちょうど私の0.02ドル...
新しい抽象から継承するために作成するモックオブジェクトを作成します。これを行うために、モックフレームワークを使用することもできます。
Rhino Mocks(私の個人的なお気に入りのモックフレームワーク)のようなものを使用しない限り、ユニットテストを実行するために手元に置いておきます。
基本クラスをデバッグするには、派生クラスの1つのインスタンスを作成し、それを介してデバッグします。
また、テストできるように、基本クラスから継承する以外は何もしない別の派生クラスを作成することを検討することもできます。
まず、クラスが継承するために抽象的である必要はありません。抽象的でない場合は、インスタンス化できます。それ以外の場合は、具体的な実装内でフォームをデバッグするだけです
基本クラスの機能をテストする目的で、テストフィクスチャアセンブリに派生バージョンを作成できます(ベースを単体テストしていると想定しているため、個別にインスタンス化する必要があります)。派生バージョンは、ベースのテストに必要な追加のインフラストラクチャを提供します。抽象ベースのさまざまな側面をテストするために、いくつかの派生バージョンを作成することを決定できます。
継承する派生クラスを使用してデバッグします。デバッグするときは、行った変更を念頭に置いて、結果の動作がすべての派生クラスで共有されているかどうかを確認する必要があります。