设计模式(一):单例模式
在很多情况下,某些类是不需要被重复产生对象的;
例如:需要有一个程序保存加载的数据信息,这个对象是在程序运行中一直存在的实例化对象,并且不会发生改变
分为两种类型:
懒汉式(需要考虑线程同步问题):在第一次使用的时候进行实例化对象处理
饿汉式:在加载时自动提供类的实例化
要点思想:
保证操作只有唯一一个实例化对象
单例类必须自己创建自己的唯一实例
构造方法私有化,类内部提供static方法获取实例化对象,不管外部如何改变操作则只有一个对象被提供
饿汉式:
/*** 饿汉式单例模式:* 在加载时自动提供类的实例化对象* */public class SingleTon {private static final SingleTon INSTANCE = new SingleTon();//构造函数私有化,此类则不会被实例化private SingleTon() {}//获取唯一实例化对象public static SingleTon getInstance(){return INSTANCE;}public void print(){System.out.println("单例模式饿汉例子");}}class SingleTonTest{public static void main(String[] args) {SingleTon instance = null;instance = SingleTon.getInstance();instance.print();}}
懒汉式:
/*** 懒汉式:* 在第一次使用时进行实例化对象处理* */public class SingleTon {private static SingleTon instance ;private SingleTon() {}public static SingleTon getInstance(){//第一次使用,实例化对象if (instance == null){instance = new SingleTon();}return instance;}public void print(){System.out.println("单例模式懒汉例子");}}class SingleTonTest{public static void main(String[] args) {SingleTon instance = null;instance = SingleTon.getInstance();instance.print();}}
