保证一个类无法在外部被实例化的三种方法,哪种更加好?解决方案
保证一个类无法在外部被实例化的三种方法,哪种更加好?保证一个类无法在外部被实例化的三种方法,哪种更加好
保证一个类无法在外部被实例化的三种方法,哪种更加好?
保证一个类无法在外部被实例化的三种方法,哪种更加好?
哪一种从逻辑上更说的过去。
谢谢各位。
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() { } }
[解决办法]
看情况
[解决办法]
学习。
------解决方案--------------------