11_设计模式

1、Java设计模式

设计模式(GOF23)就是设计者的思维,主要需要了解设计模式的应用场景及意义。
在这里插入图片描述

2、单例模式

保证一个类只有一个对象,并且提供一个开放的方法能够访问到该对象。

2.1 单例模式常用应用场景

  • 在servlet编程中,每个servlet都是单例;
  • 在spring中,每个Bean默认都是单例,方便spring容器管理;
  • 数据库连接池的设计一般也采用单例模式;
  • 在项目中,读取配置文件的类,一般也只有一个对象;
  • 在springMVC框架中,控制器对象也是单例模式。

2.2 常见的单例模式实现方法

2.2.1 饿汉式
  • 线程安全,调用效率高,不能延时加载
public class Singleton01 {
	//类初始化时,立即加载这个对象(没有延时加载的优点)
	private static Singleton01 instance = new Singleton01();
	
	//私有化构造器
	private Singleton01() {
	}

	//方法没有同步,调用效率高
	public static Singleton01 getInstance() {
		return instance;
	}
}
2.2.2 懒汉式
  • 线程安全,调用效率低,可以延时加载
public class Singleton02 {
	//类初始化时不加载对象
	private static Singleton02 instance;
	
	//私有化构造器
	private Singleton02() {
		
	}

	//方法同步,调用效率低
	public static synchronized Singleton02 getInstance() {
		//如果对象为空,则创建一个对象
		if (instance == null) {
			instance = new Singleton02();
		}
		return instance;
	}
}

3、工厂模式

  • 核心就是实例化对象,使用工厂方法代替new操作;
  • 实现创建者和调用者的分离。

4、代理模式

  • 通过代理,控制对对象的访问;
  • 将统一的流程控制放到代理角色中处理。
代理模式常见的应用场景:
  • 安全代理:屏蔽对真实角色的直接访问。
  • 远程代理
  • 延时加载:先加载轻量级的代理对象,需要时再加载真实对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值