首先,我理解接口或抽象类(在.NET/C#术语中)不能具有抽象静态方法的原因.我的问题更侧重于最佳设计解决方案.
我想要的是一组"辅助"类,它们都有自己的静态方法,这样如果我从第三方供应商那里得到对象A,B和C,我可以使用诸如
AHelper.RetrieveByID(string id); AHelper.RetrieveByName(string name); AHelper.DumpToDatabase();
由于我的AHelper,BHelper和CHelper类都基本上都有相同的方法,因此将这些方法移动到这些类随后派生的接口似乎是有意义的.但是,希望这些方法是静态的,使我无法使用通用接口或抽象类来导出所有这些方法.
我总是可以使这些方法非静态,然后首先实例化对象,如
AHelper a = new AHelper(); a.DumpToDatabase();
但是,这段代码对我来说似乎并不直观.你有什么建议?我应该完全放弃使用接口或抽象类(我现在的情况)还是可以重构这些以完成我正在寻找的设计?
如果我是你,我会尽量避免任何静电.恕我直言,我总是以静态方式结束某种同步问题.话虽如此,您正在使用模板呈现通用编程的经典示例.我将在上面的一篇文章中介绍Rob Copper提供的基于模板的解决方案.