class Person { String name; private static final Person p = new Person(); private Person() { name = "张三"; } public static Person getP() { return p; } } public class TestSingleDemo2 { public static void main(String args[]) { Person p = null; p = Person.getP(); System.out.println(p.name); } }
在上面的代码中,无论在Person类的外部声明多少个对象,最终调用getP方法得到的都是同一个引用。因为Person类的构造方法为private,所以也无法在类的定义外创建类的对象,因此Person类只会产生一个实例对象。这种做法在设计模式中称为单态模式。而所谓设计模式也就是在大量的实践中总结和理论化之后优选的代码结构、编程风格以及解决问题的思考方式。