设计模式专题-享元模式

  • 定义与优缺点

  • 使用场景

  • 结构组成和uml图

  • 具体实例实现

  • 常见面试题

 

定义:享元模式是为数不多的,只为提升系统性能而生的设计模式。主要作用就是复用大对象(重量级对象),以节省内存空间和对象创建时间 。

 

享元模式的主要优点是:相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。

 

其主要缺点是:

  1. 为了使对象可以共享,需要将一些不能共享的状态外部化,这将增加程序的复杂性。

  2. 读取享元模式的外部状态会使得运行时间稍微变长。

 

使用场景:String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。

 

结构组成:

享元模式主要有三个角色:

Flyweight:抽象享元角色。

ConcreteFlyweight:具体享元。

FlyweightFactory:享元工厂。享元工厂内部维护了一个对象池,每次获取对象都先从池中获取,获取不到再创建,并将对象保存在在池中。

享元对象的信息可以分为两种状态,内部状态:内部状态是可以共享的部分,它不会随外界环境的变化而变化,内部状态一般都作为对象池的key,而值就是享元对象本身。外部状态:会随着外界环境改变而改变的部分,它不被共享。

 

 

uml设计图:

 

享元模式实例:

 

 

常见面试题:

暂无

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值