我一直在使用Singleton类和静态方法,并且总是想知道有一个单独的类型是一个静态类型并且无法实例化但只有静态方法会有多好!
它易于阅读并且易于维护.
对于前
public UtilType MyUtility
{
public void Calculate(int x,int y)
{
return x+y;
}
}
Run Code Online (Sandbox Code Playgroud)
这里MyUtility不应该被允许实例化,只能以静态方式访问其方法.
在C#中,您可以使用以下static关键字来执行此操作:
public static class MyUtility
{
public static void Calculate(int x,int y)
{
return x+y;
}
}
Run Code Online (Sandbox Code Playgroud)
那会让你写
var result = MyUtility.Calculate(1, 2);
Run Code Online (Sandbox Code Playgroud)
遍布你的代码.
但是,它不是非常面向对象,所以总是考虑是否有更好的替代方案.面向对象的设计是关于数据和行为,而这样的静态类是纯粹的行为.这几乎与纯数据类一样糟糕,但这些通常是一起看的.
我个人发现过度使用静态类型的代码气味.
你试过......静态类型?
public static class MyUtility
{
public static void Calculate(int x,int y)
{
return x+y;
}
}
Run Code Online (Sandbox Code Playgroud)
和...
public class AnyOtherClass
{
public void AnyOtherMethod()
{
MyUtility.Calculate(4,5);
}
}
Run Code Online (Sandbox Code Playgroud)