まず、インターフェイスまたは抽象クラス(.NET / C#の用語で)が抽象静的メソッドを持つことができない理由を理解しました。次に、私の質問は、最良の設計ソリューションに焦点を当てています。
私が欲しいのは、サードパーティベンダーからオブジェクトA、B、Cを取得した場合に、次のようなメソッドを持つヘルパークラスを持つことができるように、すべて独自の静的メソッドを持つ一連の「ヘルパー」クラスです。
AHelper.RetrieveByID(string id); AHelper.RetrieveByName(文字列名); AHelper.DumpToDatabase();
私のAHelper、BHelper、およびCHelperクラスはすべて基本的に同じメソッドを持っているので、これらのメソッドを、これらのクラスが派生するインターフェイスに移動することは理にかなっているようです。ただし、これらのメソッドを静的にしたいので、すべてのメソッドから派生するジェネリックインターフェイスまたは抽象クラスを使用できません。
これらのメソッドを常に非静的にしてから、最初に次のようなオブジェクトをインスタンス化することができます。
AHelper a = new AHelper(); a.DumpToDatabase();
ただし、このコードは私には直感的ではないようです。あなたの提案は何ですか?インターフェイスまたは抽象クラスの使用を完全に放棄する必要がありますか(現在の状況)、またはこれをリファクタリングして、探しているデザインを実現できますか?