何为创建者模式
创建者模式:创建者模式主要的关注点事怎样创建对象,他的主要特点是“将对象的创建和使用分离”,这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。
创建者模式分为:
- 单例模式
- 工厂方法模式
- 抽象工程模式
- 原型模式
- 创建者模式
单例模式
1、单例模式介绍
单例模式(Singleton Pattern)是java中最简单的设计模式之一。这种类型的设计模式属于一种创建类模式,它属于一种创建对象的最佳模式。
这种设计模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建,这个类提供了唯一一种访问其对象的方法,可以直接访问,不需要实例化该类的对象。
2、单例模式的结构
单例模式的主要角色如下:
- 单例类:只能创建一个实例的类
- 访问类:使用单例模式
3、单例模式的实现
实现模式分为两种:
懒汉式:类加载的时候会导致该单例模式被创建
饿汉式:类加载不会导致该单例模式的对象被创建,而是首次使用该对象的时候被创建
1、饿汉式-方式1(静态变量方式)
package creatorPattren.singleton.demo01;
/**
* 第一种饿汉式 实现单例模式
*
* 使用静态成员变量的方式创建类
* 向外提供一个公开的获得类的方法
*/
public class Singleton01 {
//私有化类的构造方法
private Singleton01() {
}
private static Singleton01 intance = new Singleton01();
public static Singleton01 getIntance() {
return intance;
}
}
2、饿汉式-方式2(加锁静态变量方式)
package creatorPattren.singleton.demo02;
/**
* 第二种饿汉式 实现单例模式
*
* 使用静态成员变量的方式创建类
* 向外提供一个公开的获得类的方法
*/
public class Singleton02 {
//私有化类的构造方法
private Singleton02() {
}
private static Singleton02 intance;
public static Singleton02 getIntance() {
//在这里才将类赋值
if (intance == null) {
intance = new Singleton02();
}
return intance;
}
}
3、饿汉式-方式3(使用内部类方式)
package creatorPattren.singleton.demo05;
/**
* 第三种饿汉式 实现单例模式
* 使用内部类的方式实现
* 使用静态成员变量的方式创建类
* 向外提供一个公开的获得类的方法
*/
public class Singleton05 {
//私有化类的构造方法
private Singleton05() {
}
private static class getSingleton{
private static final Singleton05 INSTANCE= new Singleton05();
}