开发中常用的设计模式
来源:互联网 发布:淘宝购物卡哪里买 编辑:程序博客网 时间:2024/06/05 18:57
开发中常用的设计模式
一、单例模式
什么叫单例模式?
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例,在单例模式中,又分为懒汉式和饿汉式,其特点为:
1、这个类只能有一个实例
2、它必须自行创建这个实例
3、它必须自行向整个系统提供这个实例。下面我们单独介绍下,他们之间的调用和区别
1、懒汉式:
从字意上我们很容易看出来,这个方法是在加载的时候才会被调用,属于线程不安全的,如果启用多线程的时候,同时调用入口方法获取实例时,会报错,例如:
//懒汉单例,线程不安全,当启动多线程,同时获取多个实例时会报错public class SingleTon{ public SingleTon(){} private static SingleTon instance = null; private static SingleTon getInstance(){ if(instance == null){ instance = new SingleTon(); } return instance; }}
//懒汉模式也提供一种解决同步调用时不能正常工作的方法,使用synchronized声明访问点,但是工作效率低public class SingleTon{ private static SingleTon instance = null; //此时如果不加上同步锁的话,线程是不安全的,所以要加上同步锁 private static synchronized SingleTon getInstance() { if(instance == null){ instance = new SingleTon(); } return instance; }}//看到上面的代码,是不是感觉这样写懒汉式已经可以了呢?其实不然,懒汉式还有一种写法叫做双重检查模式,代码如下:public class SingleTon{ private static SingleTon instance = null; private SingleTon(){ } public static SingleTon getInstance(){ if(instance == null){ Synchronized(SingleTon.class){ if(instance == null){ instance = new SingleTon(); } } } }}
2、饿汉式:
饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。
public class SingleTon1{ private static SingleTon1 instance =new SingleTon1(); public SingleTon1(){} private static SingleTon1 getInstance(){ return instance; }}
1 0
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- 游戏开发中常用的设计模式
- IOS开发中常用的设计模式
- Android 开发中常用的设计模式
- 游戏开发中常用的设计模式
- java 解压zip、rar文件
- linux+jenkins+maven+git+tomat(多个节点)环境搭建
- Qt5 C++源码中使用中文的简单步骤
- 微擎中 memcache的使用
- vim_使用查找命令查找指定字符串
- 开发中常用的设计模式
- JBoss多JDK下启动JBoss
- linux_Git_command
- java里类方法和实例方法区别
- linux_cmd_find
- python 在集合、列表中随机选择某个数的方法
- 深度学习*学习笔记-----之决策树(1)
- MySQL 修改自增长auto_increment步长
- JavaScript基础