单例模式

一、饿汉式:(开发中用)


1、构造方法私有化

2、类对象在本类中创建,并且本实例对象私有化

3、提供公有的static方法获取该私有实例对象

实例:

/*

 * 单例设计模式:饿汉式(开发中用)

 *  1、首先在本类中创建一个对象

 *  2、本实例私有化

 *  3、提供公有的获取实例的方法

 *  4、由于不能在本类以外创建对象,所以只能用类本身调用此公有方法,所以需static修饰此公有方法

 */

public class Student {

          

          //私有化此对象,避免本类以外修改此对象

          private static Student student = new Student();

          

          //提供公有的获取实例的方法,此方法static修饰

          public static Student getInstance(){

                     return student;

          }

          

          //构造方法私有化,使得不能在本类以外创建对象

          private Student(){}

二、懒汉式:(面试中用)


1、构造方法私有化

2、在本类中先声明实例对象

3、提供共有的static方法获取该实例对象

4、在多线程的情景下,该方法可能会被同时调用,所以需加同步synchronized

实例:

//私有化实例对象,使得本类以外不能更改此声明

          private static Person person;

          

          //提供共有的获取实例的方法,为避免多线程场景共同调用此方法产生一场,需加同步

          public static synchronized Person getInstance(){

                     if(person == null){

                               person = new Person();

                     }

                     return person;

          }

          

          //私有化构造方法,使得本类外不能创建对象

          private Person(){}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章