设计模式
前人总结出来的经验,被后人拿来直接使用
- 常用的设计模式:
有23种,我们要学的有单例,模板,装饰,适配器,工厂,代理等
单例设计模式
一个类只允许有一个对象,将这个对象作为一个全局的访问点,提供出来供大家使用
- 分析
- 只能有一个对象
- 全局的访问点:得到的对象就是全局的访问点,如何做到全局?让static去修饰只想对象的变量
- 如何提供出去?
- 供大家使用?–单例的功能
实例
package demo;
public class Demo5 {
public static void main(String[] args) {
SingleInstance sInstance = SingleInstance.getSingleInstance();
SingleInstance sInstance1 = SingleInstance.getSingleInstance();
System.out.println(sInstance == sInstance1);
}
}
/**
* 单例模式
* 恶汉式-在定义变量的同时完成初始化
* @author 弄风
*
*/
class SingleInstance{
//在类的内部创建一个当前类型的属性并赋值--在类的内部得到了当前类的一个对象
//将变量私有化,让外界无法直接访问 给变量用static修饰让它成为全局的访问点
private static final SingleInstance singleInstance = new SingleInstance();
//将构造方法私有化
private SingleInstance() {
}
//使用公共的方法将变量提供出去,并将方法设置成静态的
public static SingleInstance getSingleInstance() {
return singleInstance;
}
}
/**
* 单例模式
* 懒汉式-开始只是定义变量,什么时候使用什么时候赋值
* @author 弄风
*
*/
class SingleInstance1{
//在类的内部创建一个当前类型的属性并赋值--在类的内部得到了当前类的一个对象
//将变量私有化,让外界无法直接访问 给变量用static修饰让它成为全局的访问点
private static SingleInstance1 singleInstance = null;
//将构造方法私有化
private SingleInstance1() {
}
//使用公共的方法将变量提供出去,并将方法设置成静态的
public static SingleInstance1 getSingleInstance() {
if (singleInstance == null) {
singleInstance = new SingleInstance1();
}
return singleInstance;
}
}