【发布时间】:2011-03-25 12:38:49
【问题描述】:
我需要创建一组静态类,它们都需要实现相同的方法。我想想办法强迫他们这样做。
我知道静态类不能派生 System.Object 以外的任何东西。我应该为此使用非静态方法吗?可以,但是这个类的所有方法都不会使用实例属性...
我最好的办法是我应该使用单例。然后我会使用一个实例,但至少我不会在每次需要使用方法时都强制实例化该类。
您建议的替代方案是什么?
编辑:
我不会实现这些方法。我需要强制其他开发人员实现具有特定签名的特定方法。每个班级的所有签名都是相同的。就是这样。
假设您有一个静态类,可以从您办公室的数据库中获取记录。你有几种方法可以做到这一点。由于这些方法都不共享变量,因此它们被标记为静态,类也是如此。
现在,您和您团队中的其他开发人员必须对您无法控制的其他数据库甚至 API 执行相同的操作,这并不重要。您想强迫您的同事使用完全相同的方法和相同的签名来实现所有这些类。
您的 cmets 总是受欢迎的,但现在我只想找到最接近的方法。
我可以使用一个所有其他人都可以继承的抽象类。但由于这些方法不共享任何内容,我不希望每次需要它们时都实例化该类。
这就是我提到使用单例模式的原因。我不应该这样做吗?
【问题讨论】:
-
为什么需要静态类来实现特定的方法?您通常需要特定方法存在的原因是启用多态性,即能够传递可以被相同处理的不同类型对象的实例。这样的概念对静态类没有意义,因为没有静态类的实例。
-
您能解释一下为什么要让静态类都具有相同的方法,这可能有助于其他人提供更多建议。 (目前我想不出为什么有人会想要这样做!)
-
您的问题太模糊了,并且与接口的定义有关。考虑重新考虑您的方法或提供一个示例场景来帮助您详细说明您正在尝试做的事情。
-
我明白你们在说什么。原因在问题的编辑部分。谢谢
标签: c# static-methods static-members static-classes