目录

30天学习Java第四天设计模式

30天学习Java第四天——设计模式

设计模式概述

设计模式是一套被广泛接受的、经过试验的、可反复使用的基于面向对象的软件设计经验总结,它是开发人员在软件设计时,对常见问题的解决方案的总结和抽象。

一句话就是,设计模式是针对软件开发中常见问题和模式的通用解决方案。

设计模式有哪些

  1. GoF设计模式 :最常用的,四人组(Gang of Four)

    单例模式是其23中设计模式之一

  2. 架构设计模式

  3. 企业级设计模式

  4. 领域驱动设计模式

  5. 并发设计模式

  6. 数据访问模式

GoF设计模式的分类

  1. 创建型:解决对象的创建问题
  2. 结构型:通过设计和构建对象之间的关系,以达到更好的重用性、扩展性和灵活性
  3. 行为型:主要用于处理对象之间的算法和责任分配

单例模式singleton

单例模式属于创建型的设计模式

饿汉式单例模式

如何实现饿汉式单例模式?

  1. 构造方法私有化
  2. 对外提供公开的静态方法,获取实例
  3. 定义一个静态变量,接收类的实例化对象。静态变量在类加载时初始化,只执行一次,从而达到只创建一个实例的目的。

由于饿汉式单例模式,在类加载时就创建出来对象,无论用于不用对象都创建出来了,称为饿汉单例模式。

public class Singleton {
	// 定义一个静态变量
	private static s = new Singleton()
	
	// 构造方法私有化,不让外界使用构造方法创建对象
	private Singleton(){

	}
	// 提供一个公开的获取实例静态方法
	//一定要是静态的,不需要new对象,通过类名就能访问
	public static Singleton getSingleton() {
		return s;
	}
}

懒汉式单例模式

如何实现饿汉式单例模式?

  1. 构造方法私有化
  2. 对外提供公开的静态方法,获取实例
  3. 提供一个静态变量,但是这个变量值为null;
public class Singleton {
	// 定义一个值为null的静态变量
	private static s = null;
	
	// 构造方法私有化,不让外界使用构造方法创建对象
	private Singleton(){

	}
	// 提供一个公开的获取实例静态方法
	//一定要是静态的,不需要new对象,通过类名就能访问
	public static Singleton getSingleton() {
		// s没有的时候再去创建
		if(s == null){
			s= new Singleton();	
		}
		return s;
	}
}