0
点赞
收藏
分享

微信扫一扫

Java设计模式-单例模式


目录

​​概述​​

​​单例模式​​

​​创建一个单例对象SingletonPatternObj​​

​​创建一个测试用例TestSingletonPatternObj​​

​​总结​​

概述

今天来聊聊Java的设计模式,大部分开发人员应该都有听过。但在实际开发中,我们是否都有用到这种思想,这个就比较考究个人功底。从字面意思可知,“模式”是一种规范,或者是一种经验,是众多开发人员经过长时间试验和错误总结出来的。对于初级开发者来说,刚开始可能会比较难以用于实战中,但只要自己拜读过一些技术框架的源码,就会发现原来自己一直和这些设计思想有交集。那对于中高级的开发者来说,就必须掌握这些设计思想,对于代码架构设计是有极大的帮助。Java的设计模式差不多有二十多种,常用的也有十种左右。后续我会挑一些比较常用的设计模式来讲讲。

单例模式

单例模式应该是Java中最常见和最简单的设计模式之一。简单来说,单例类只有一个实例,而且还是自己创建自己的唯一实例,因此我们要用到这个实例,都是通过这个对象提供。

创建一个单例对象SingletonPatternObj

 

 

package com.ispeasant.java.designpattern.singletonpattern;

/**
* 单例模式
*/
public class SingletonPatternObj {
// 创建一个SingletonPattern的一个对象
private static final SingletonPatternObj sp = new SingletonPatternObj();

// 构造函数为私有限制,只能产生一个对象
private SingletonPatternObj(){

}

// 其它类想获取本类,只能通过本方法来获取,这样才能保证唯一性
public static SingletonPatternObj getSp(){
return sp;
}

// 写一些测试方法来测试一下,后续可根据实际情况来扩展
public void methodDemo() {
System.out.println("methodDemo");
}
}

 

创建一个测试用例TestSingletonPatternObj

 

 

package com.ispeasant.java.designpattern.singletonpattern;

/**
* 测试我们创建的单例
*/
public class TestSingletonPatternObj {
public static void main(String[] args) {
// 只能通过这种方式获取对象
SingletonPatternObj sp = SingletonPatternObj.getSp();

// 测试方法
sp.methodDemo();
}
}

 

执行结果如下:

Java设计模式-单例模式_下载

总结

以上是我们最常用的单例模式的通用代码思路,但在实际开发中,我们是会基于通用模式进行扩展。单例模式大致包含以下几种实现方式:

懒汉式:懒汉式有两种方式,如果加锁synchronized,就能保证线程安全,否则线程不安全,不推荐。

饿汉式:这种方式比较常用,但可能会造成资源浪费。如果是一些轻量级Java类,对实际性能不会影响太大。上面举得例子就是饿汉式,可参考研究。

还有一些衍生的,但相对来说用得比较少,就不一一举例说明。

 

可关注本人公众号,回复“2020073001”获取代码下载链接。

 

 

只要自己有时间,都尽量写写文章,与大家交流分享。

本人公众号:

Java设计模式-单例模式_下载_02

个人博客地址:​​http://www.ispeasant.com/​​

 

 

 

 

 

举报

相关推荐

0 条评论