所以,安全的做法是保证这个类有一个对象且只能有一个对象。
当遇到向上面所说的需求时,就会用到单利模式。
如何保证对象的数目不超标呢?私有化构造函数,因为你new对象必须用到构造函数,比如咱们很熟悉的
Person p= new Person();它后面的这个Person()不就是构造函数吗,你把它私有了,你就不能用它了,对象就不能再类的外部创建了,这就保证了数目不超标。
如何保证有一个对象呢?你的对象不能创建了,你也不能一个没有啊,要不这个类就没什么意义了(除非你定义的就是一个工具类,里面全是静态方法)。解决方法是在类中创建一个本类对象。
这样,“某个类的对象有且仅有一个”的要求就满足了了,那么还剩一个问题,我怎么在类的外部获取这个类的对象啊?通过在类中声明一个get方法,一旦调用这个方法,类就返回在类中创建好的单例的本类对象。