享元模式

1.享元模式
	享元模式的定义是:享元模式是一种用于性能优化的模式。享元模式的核心
						是运用共享技术来有效支持大量细粒度的对象。
	
2.享元模式的内部状态和外部状态
	1.享元模式要求将对象的属性划分为内部状态和外部状态(状态通常指的是属性)
	2.享元模式的目标是尽量的减少共享对象的数量。
	3.如何划分内部状态和外部状态:
		1.内部状态存储在对象的内部
		2.内部状态可以被一些对象共享
		3.内部状态独立于具体的场景,通常不会改变。
		4.外部状态取决于具体的场景,并根据场景而变化,外部状态不能被共享。
	4.使用享元模式的关键是如何区别内外部状态
	5.享元模式是一种用时间换取空间的模式。
	
3.享元模式的通用结构
	问题1:我们通过构造函数显示new出来了两个男女模特对象,在其他的系统中
			特许并不是一开就需要所有的共享对象。
		我们可以用一个对象工厂来解决,只有当共享对象被真正需要的时候,才从
		工厂中被创建出来
	问题2:给模特对象手动设置clothes外部状态,在更复杂的系统中,这不是一个
			最好的方式,因为外部状态可能相当的复杂,它们与共享对象的联系会
			变得困难。
		我们可以用一个管理器来记录对象相关的外部状态,使得这些外部状态通过
		某个钩子和共享对象联系起来
	
	
4.享元模式的适用性
	1.享元模式是一种很好的优化性能的方案,但是同时也带来了复杂性的问题
	2.享元模式带来的好处很大的程度上取决于如何使用以及何时使用
	3.享元模式的使用时机:
		1.一个程序中使用了大量的相似对象
		2.由于使用了大量的相似对象,造成了很大的内存开销
		3.对象的大多数状态都可以变成外部状态
		4.剥离出对象的外部状态之后,可以用相对较少的共享对象取代大量的对象。
		
5.对象池的概念和理解
	对象池维护一个装在空闲对象的池子,如果需要对象的时候,不是直接new对象,而是
	从对象池中获取。如果对象池没有空闲的对象,那么我们在才创建一个新的对象出来,
	当获取的对象完成了它的职责之后,再次进入池子等待下次被获取。
	
6.对象池案例的实现
	
7.享元模式的小结
	1.享元模式是为了解决性能问题而生的模式。
	2.享元模式可以解决大量对象带来的性能问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值