Java设计模式——结构型模式之享元模式

享元模式是一种结构型设计模式,旨在减少内存开销,通过共享技术支持大量细粒度对象。当应用程序需要大量对象且造成内存压力时,享元模式通过缓存池管理对象,实现对象复用。适用场景包括需要缓冲池和大量对象的创建。本文将探讨享元模式的原理、适用场景并提供代码示例。
摘要由CSDN通过智能技术生成

一、前言

享元模式的设计初衷是为了支持大量细粒度对象。在我们的某些系统中,可能会有大量的对象产生,造成很大的储存开销,比如说连接数据库的session对象,我们通过缓存池来管理这些session。享元模式就是为了解决这种内存开销问题,享元模式属于结构型的设计模式。

二、享元模式

概述:运用共享技术有效地支持大量细粒度的对象。主要用于减少创建对象的数量,以减少内存占用和提高性能。

享元模式的设计原理:尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。

适用场景:

1、一个应用程序使用了大量的对象。

2、完全由于使用大量的对象,造成很大的存储开销。

3、需要缓冲池的场景

三、代码展示

享元模式的原理比较简单,就是创建一个类似于缓存池的东西,我们从这个缓存池去拿对象,当对象不存在或者不够时,我们再new出新的对象,这样就能达到减少内存的开销目的

3.1 一个享元类

public interface Flyweight {
public void getColor();
}
public class FlyweightImpl implements Flyweight{
private String  color;
 public FlyweightImpl(String color) {
	// TODO Auto-generated constructor stub
	 this.color = color;
}
	@Override
	public void getColor() {
		// TODO Auto-generated method s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值