Java:设计模式(单例模式,懒汉式&饿汉式的区别)

设计模式之一——单例模式

是在大量的实践和理论中总结出来的并优化之后的一个代码结构,编程风格,解决问题的思考方式

概念:一个类只能创建一个实例化对象(将构造器进行私有化(Private)来保证只有一个实例,此时外部无法调用构造器来创建对象提供static 修饰)
饿汉式

class Banl{
//1. 私有化构造器
	private Bank(){}
//2. 内部需要提供一个当前类的实例
	private static Bank bank = new Bank();
//3. 提供一个公共静态方法,返回当前类的对象
	public static Bank getIntstance(){
		return bank;
	}
}

懒汉式

class Order(){
//1. 构造器私有化
	private Order(){}
//2. 在类的内部提供上一个当前类的实例
	private static Order order = null;
//3. 提供一个公共静态方法,返回当前类的对象
	public static Order getInstance(){
		if(order == null){
			order = new Order();
		}
		return order;
	}
}

懒汉式&饿汉式的区别:
懒汉式:是一种需要的时候才创建对象的设计模式,优点是延迟加载;缺点是应用同步,需要维护线程安全
饿汉式:天然是线程安全的(多线程),加载早,导入对象在内存中存在时间过长,占用内存
其最大的区别是看其什么时候创建对象,如果一开始就创建实例对象,则是饿汉式。

单例模式的优点:
单例模式只创建了一个类的实例,减少了系统性能的开销

单例的使用场景:
网站计数器,数据库连接池,配置文件类,Application,Windows的资源管理器

你可能感兴趣的:(Java)