保证一个类无法在外部被实例化的三种方法,哪种更加好?
保证一个类无法在外部被实例化的三种方法,哪种更加好?
哪一种从逻辑上更说的过去。
谢谢各位。
C# code
//1.单实例,构造函数是私有的,无法在外部new
public class Manager
{
private Manager()
{
}
private static readonly Manager _Instance = new Manager();
public static Manager Instance
{
get
{
return _Instance;
}
}
private string _Name;
public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}
public void Buy()
{
}
}
//2.静态类,无法被实例化
public static class Manager
{
private static string _Name;
public static string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}
public static void Buy()
{
}
}
//3.抽象类,无法被实例化
public abstract class Manager
{
private static string _Name;
public static string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}
public static void Buy()
{
}
}
------解决方案--------------------楼下回答 帮你顶上去
------解决方案--------------------看需要。
如果提供的都是静态方法。那就用静态类,如果是单利模式,就private构造函数,提供一个静态的Instance属性。如果不希望别人实例化,做成抽象类实在是乱来了。
------解决方案--------------------
------解决方案--------------------如果没有必要“保证”,那么去保证就是闲得太多了。设计模式的某个就有这个毛病。
------解决方案--------------------
------解决方案--------------------但是他是从设计模式就是法律的角度,去强调“保证”。而我要问的是,允许new一个实例(尽管懂得的人都知道不用new而直接调用static的GetInstance方法就行),碍谁蛋疼了呢?
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------看需要吧,没有什么绝对的好与坏!
------解决方案-------------------- 学习下
------解决方案--------------------C# code
public class Manager
{
public static Manager GetInstance = new Manager();
private Manager()
{
}
}
------解决方案--------------------
看情况
------解决方案--------------------
学习。
------解决方案--------------------