1,什么是设计模式?
设计模式是在经过大量的实践中总结和理论化之后的代码结构 ,算是一种编程风格
2, 什么是单例模式?
单例------> 指单个实例
采取一定的方法保证整个软件系统中,对某个类只能存在一个对象实例 ,并且该类只提供一个可取的其对象实例的方法
单例模式的两种形式: 饿汉式 和 懒汉式
名字由来 :
1)饿汉式:不管程序是否需要这个对象的实例,总是在类加载的时候就先创建好实例,理解起来就像不管一个人想不想吃东西都把吃的先买好,如同饿怕了一样。
2)懒汉式:如果一个对象使用频率不高,占用内存还特别大,明显就不合适用饿汉式了,这时就需要一种懒加载的思想,当程序需要这个实例的时候才去创建对象,就如同一个人懒的饿到不行了才去吃东西
参考: (23 封私信 / 16 条消息) 为什么单例模式要起名叫饿汉式和懒汉式? - 知乎 (zhihu.com)
3 .1饿汉式步骤 :
1)构造器私有化 ---> 防止直接 new 出 实例对象
2)在类的内部创建对象
3) 向外暴露一个静态的公共发布方法 --->getInstance
4)代码实现
class GirlFriend{
private String name ;
private static GirlFriend gf = new GirlFirend() //在类内部实例化对象
private GirlFriend(){ // 构造器私有化
}
public static GirlFriend getInstance(){ //在类中创建公共静态方法供外部使用
return gf ;
}
3.2 懒汉式步骤
1) 构造器私有化
2)定义一个 static 静态属性对象
3) 提供一个 public 的 static 方法 ,可以返回 一个 对象实例
4)代码实现
class Cat {
private String name ;
private static Cat cat;
private Cat(){
// 构造器私有化
}
public static Cat getInstance(){
if(cat == null){ //如果还没创建cat 对象
cat = new Cat();
}
return cat;
}
二者区别 :
是在创建对象时的区别
饿汉式 不管程序是否需要这个对象的实例,总是在类加载的时候就先创建好实例;
懒汉式 当程序需要这个实例的时候才去创建对象 。