禁止实例化的类

来源:百度知道 编辑:UC知道 时间:2024/05/30 22:22:53
一般 在什么 情况下 要 禁止实例化一个类

禁止实例化一个类 有什么好处?

1.真正禁止实例化的类,往往是作为工具类存在的。比如System.Math:
public static class Math
.NET 2.0中增加了静态类的概念(static classes),所有的成员都声明为静态。
静态类禁止实例化的原因是没必要。工具类,你拿来用就是了。

2.一些设计模式
工厂模式中,有的写法是禁止产品类的实例化的。但是并不是说不实例化。而是将实例化的动作由工厂类完成。
享元模式也是如此。
单件模式,当你调用单例的时候,其实就是内部的一个判断是否需要实例化的过程。
设计模式中禁止直接实例化是为了某种原因,比如控制(单件,享元)。

比如某个类里面只有静态函数,那这个类实例出来的对象还有什么用呢?C#不像C++,可以写全局函数,C#里面的全局函数就写在C#类的静态方法里面,晓的了哇?