私のスーパークラストランザクションは私のファサード(デザインパターン)クラスで使用されているため、特定の型へのキャストを含む、または必要とするメソッドまたはサービスがあるたびに、If.. Else IF.. Else IF.... チェックしてからキャストする必要がありますそのプロパティまたは属性にアクセスするための特定の型へ
はい..ファサードパターンを使用するときの問題でした。クライアント コードで追加のキャストを行う必要があります。
ファサードにジェネリックを使用することを検討してください
public class Facade
{
public Transaction GetTransaction<T>() where T : Transaction
{
// any other process
return (T)result;
}
}
クライアント コードで呼び出すだけです。
GameTransaction gameTx = facadeInstance.GetTransaction<GameTransaction>();
ファサード パターンのもう 1 つのオプションは、依存性注入を使用することです。したがって、すべてのコードを共有する大きなクラスを作成するのではなく、オブジェクトとその依存関係を作成するためのシステムを提供します。そして、それは説明するのに長い話になります:)