プロジェクトに一連のクラスがあり、それらはすべて基本的に同じことを行いますが、オブジェクトは異なります。それらのいくつかは別の時期に別の人によってコード化されているため、名前付けに一貫性がありません。現在のオブジェクトだけでなく、将来作成される新しいオブジェクトにも一定の一貫性が保たれるように、コードを更新したいと考えています。プログラミングを理解していると、基本クラスまたはインターフェイスのいずれかが必要であると考えるようになりますが、どちらも機能させる方法がわかりません。私がしたい方法は次のとおりです。
internal BusinessObject MethodA(EntityObject entity)
internal Void MethodB(EntityContext context, BusinessObject obj, EntityObject entity)
私が抱えている問題は、各クラスで「BusinessObject」と「EntityObject」が異なることです。たとえば、「CarObject と CarEntity」の場合と「BusObject と BusEntity」の場合があります。私はまだ 2 つのメソッドが必要であり、MethodA と MethodB という名前が必要です。実装内の実際のオブジェクト タイプを交換したいだけです。異なるオブジェクトを使用しているため、実装自体も異なります。
コンパイル時にオブジェクトの型を知っており、オブジェクトのプロパティにアクセスできる必要があるため、ジェネリックを使用する場合は、実装でジェネリックを正しい型としてキャストする必要があります。また、MethodA の実装では、「新しい」BusinessObject、つまり「BusinessObject x = new BusinessObject()」を作成する必要があります。
メソッドでジェネリックを使用したインターフェイスと、抽象メソッドを使用した基本クラスを使用してみましたが、どちらも機能させる方法を理解できませんでした。
これを処理する最善の方法は何ですか? サンプルコードは大歓迎です。