java之设计模式---单例模式

最近几天在学习设计模式,对设计模式有点初步的了解,特意写下集中比较常用的设计模式博客,里面包含了自己的一些见解。

1、单例模式概念:

        确保一个类只有一个实例对象,并且自动实例化并向整个系统提供这个实例

2、类型:创建型模式

3、简介:

     单例模式应该是23中设计模式中最简单的一种设计模式看,主要有三个要素组成:
     (1)、私有的构造方法 (2)、指向自己实例的私有静态引用 (3)、以自己实例为返回值的静态的共有方法

4、什么情况下使用单例:

       (1)、当要用一个类时,又要用该类中的一个实例;
       (2)、new 来创建实例时会给程序造成资源的浪费,而且实例越多也不好控制。
       (3)、不同的线程调用时,可能会引起不同步的现象。

       (4)、需要频繁实例化和销毁的对象。

5、两种经典实现单例的方式:

        (1)、单例模式根据实例化对象的时机不同分为两种:一种饿汉模式,一种是懒汉模式

        (2)、饿汉模式在类被加载的时候就实例化对象交给自己的引用了
        (3)、懒汉模式在调用取得实例方法的时候才会实例化对象

6、饿汉模式:

package com.jxau.ruanjian1201.Pattern;

public class SinglePattern {
	private static SinglePattern singlePattern = new SinglePattern();
	private SinglePattern(){}
	public static SinglePattern getInstance(){
		return singlePattern;
	}
	public static void main(String[] args) {
		SinglePattern single1 = SinglePattern.getInstance();//饿汉单例创建对象
	}
}

7、懒汉模式:

package com.jxau.ruanjian1201.Pattern;

public class SinglePattern {
	private static SinglePattern singlePattern ;
	private SinglePattern(){}
	public static synchronized SinglePattern getInstance(){
		if(singlePattern == null){
			singlePattern = new SinglePattern();
		}
		return singlePattern;
	}
	public static void main(String[] args) {
		SinglePattern single1 = SinglePattern.getInstance();//懒汉单例创建对象
	}
}

7、单例模式的优点

(1)在内存中只有一个对象,节省内存空间。

(2)避免了繁琐的创建销毁对象,可以提高性能

(3)可以全局访问

8、单例模式注意事项:

(1)只能使用单例类提供的方法来得到单例对象,千万不要使用反射,这样会实例化一个新对象。

(2)不要断开单例类对象与类中静态引用。

(3)多线程使用的时候要注意线程安全问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值