[再读书]私有构造函数

记录下来,给新手看(应该有人用的到)。
私有构造函数初看起来没有什么作用,但是在.net中功能相当多。一般用在许多静态方法的类中,这些静态方法用作一个库,而不是对象。添加私有构造函数,将确保类不能在外部创建对象。
创建私有构造函数有两个原因,在使用公共构造函数时,不能使用类创建代码,一种情况是,如果不提供初始化参数,创建对象是没有意义的。
    第二个原因是创建某种对象设计模式,例如工厂模式,即类上的公共静态方法要调用私有构造函数,并把对象的一个实例返回到对象创建代码,还有单—模式,即构造函数只能调用一次。
一个小例子:

    class foo
    {
        
private foo()
        { }

        
public foo(int intNum)
        {
        }
    }
如果在外部创建对象
        foo f = new foo();
就会报一个错误 1 “foo()”不可访问,因为它受保护级别限制 ,这种情况是我们认为,如果不初始化参数,创建对象就没有意义。
此时如果想创建对象,就需要。
        foo f = new foo(321);
应该知道,派生类都要调用基类的构造函数,所以,就决定了带有私有构造函数的类不能用作基类,因为他们的构造函数对派生类来说不可见。

posted on 2006-04-28 18:00  萝卜青菜  阅读(404)  评论(0编辑  收藏  举报

导航