比如有两个类:
[code=csharp]class A{
}
class B{
public static A createA();
}[/code]
类A不能直接实例化,如 A a = new A(); 禁止象上面直接实例化,
而必须通过B的方法来创建A,如: A a = B.createA();
就是说:
[code=csharp] A a = new A(); //不允许这样直接实例化
A a = B.createA(); //只能通过B来创建A[/code]
解决方案
[code=csharp]使用私有构造函数
class A
{
private A() {}
}
或者使用静态类
static class
{
...
}
还有抽象类:
abstract class A
{
...
} [/code]
这些都要吧实现上面的效果的