【发布时间】:2021-01-03 10:17:45
【问题描述】:
我们目前正在开发一个用 C# 编写的 Web-API 项目。它包含许多具有非静态嵌套类的静态外部类。类似的东西
public static class OuterClass
{
public class InnerClass : ParentClass
{
}
}
这个模式在整个项目中经常使用,因此我的问题。使用具有非静态嵌套类的静态外部类是否有任何陷阱?更不用说,在整个应用程序中使用了很多?
【问题讨论】:
-
静态类除了内部类还有别的吗?
-
我认为这是“静态类作为命名空间”反模式的一个例子
-
静态外部类没有成员。它只有 public 内部类。但这些都有成员(即字段、属性、方法等)。
-
如果你说为什么你在做这件奇怪的事情会很有帮助。这不一定是错的,但如果被要求审查此代码,我需要一个可靠的理由,这很奇怪。
-
谢谢你的草图;这很有帮助。在批评这种设计选择时,我会问的问题是:与命名空间相比,这种静态类方法产生了哪些引人注目的好处?我没有看到任何伤害,但是如果按照设计使用命名空间没有任何好处,那么我通常会遵循标准设计模式。通常只使用静态类来存储全局有用的方法,尤其是扩展方法。