单态模式

  类的构造函数可以声明为private,这意味这构造函数只能在类的内部被调用:

public class TestClass {
    private int  tick = 10;
    private TestClass(){
        tick--;
    }
    public  static final TestClass tc = new TestClass();
    public static TestClass getTestClass(){
        return tc;
    }
    public void speak(){
        System.out.println("this is TestClass:"+tick);
    }
    public static void main(String[] args) {
        TestClass tc = null;
        tc = TestClass.getTestClass();
        tc.speak();
        TestClass tc1 = TestClass.getTestClass();
        tc1.speak();
    }
}

有上述代码要注意几点:
1、构造函数私有化之后不能直接实例化,因此如果要调用构造函数必须将相应的变量和方法声明为static

2、添加final,这样做不管外面声明多少个对象,最后都指向同一个实例。

3、这叫java的单态模式。

posted @ 2016-07-24 21:40  麦哈顿博士  阅读(125)  评论(0编辑  收藏  举报