设计模式概述
设计模式是一套被广泛接受的、经过试验的、可反复使用的基于面向对象的软件设计经验总结,它是开发人员在软件设计时,对常见问题的解决方案的总结和抽象。
一句话就是,设计模式是针对软件开发中常见问题和模式的通用解决方案。
设计模式有哪些
- GoF设计模式:最常用的,四人组(Gang of Four)
单例模式是其23中设计模式之一 - 架构设计模式
- 企业级设计模式
- 领域驱动设计模式
- 并发设计模式
- 数据访问模式
GoF设计模式的分类
- 创建型:解决对象的创建问题
- 结构型:通过设计和构建对象之间的关系,以达到更好的重用性、扩展性和灵活性
- 行为型:主要用于处理对象之间的算法和责任分配
单例模式singleton
单例模式属于创建型的设计模式
饿汉式单例模式
如何实现饿汉式单例模式?
- 构造方法私有化
- 对外提供公开的静态方法,获取实例
- 定义一个静态变量,接收类的实例化对象。静态变量在类加载时初始化,只执行一次,从而达到只创建一个实例的目的。
由于饿汉式单例模式,在类加载时就创建出来对象,无论用于不用对象都创建出来了,称为饿汉单例模式。
public class Singleton {
// 定义一个静态变量
private static s = new Singleton()
// 构造方法私有化,不让外界使用构造方法创建对象
private Singleton(){
}
// 提供一个公开的获取实例静态方法
//一定要是静态的,不需要new对象,通过类名就能访问
public static Singleton getSingleton() {
return s;
}
}
懒汉式单例模式
如何实现饿汉式单例模式?
- 构造方法私有化
- 对外提供公开的静态方法,获取实例
- 提供一个静态变量,但是这个变量值为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;
}
}
注:本文章源于学习动力节点老杜
的java教程视频后的笔记整理,方便自己复习的同时,也希望能给csdn的朋友们提供一点帮助。