_11_面向对象之设计模式

设计模式
工厂模式、单例模式、代理模式、观察者模式
目前我们只需要掌握工厂模式和单例模式即可
设计模式不仅仅是java的模式,而是面向对象的设计模式
模式就是一种思维固化,本来世上本没有路,走的人多了,便有了路
人们发现在写代码中,为了做到某些效果,很多人都这么写,所以整理出来,生成固定的设计模式

比较成熟的设计模式有23种,而单例模式,是23种设计模式中最简单的一种
设计模式 : 就是在编码实践中,发现有很多的编码方式大家都会用到,于是就总结出来,形成固定的结构,就叫设计模式

1 单例模式 :
在某些需要多次初始化同一个对象的应用中,为了保证初始化对象只有一个,以达到节约内存的目的

实现单例模式 :
1 构造方法私有化,让外部无法通过构造方法直接创建对象
2 创建一个 公共的静态的实例化当前类对象的方法
3 提供一个当前类类型的静态变量,用于装载这个实例化对象的内存地址

根据对象的创建时间不同,单例模式又被分为了两种
1 懒汉模式
用到的时候在创建对象,是懒汉模式
2 饿汉模式
类加载时就立马创建对象,是饿汉模式
最终实现,无论客户端怎么获取实例化对象,都只创建一个对象

1 懒汉模式 :
用到的时候在创建对象,并且只实例化一次
_11_面向对象之设计模式

2 饿汉模式
类加载的时候,就创建好对象

类加载阶段
1 静态代码段会执行
2 静态变量初始化
都可以实现饿汉模式
_11_面向对象之设计模式

一般情况下,我们会使用懒汉模式,用到的时候,再创建对象

工厂模式 :
把创建对象的语句单独封装成一个工厂模式
这样 所有用到这个对象的地方,统统去工厂中获取
把类之间的强依赖关系变弱,灵活度更高