1、定义
享元模式(FlyWeight),又称为蝇量模式,常用于有着大量重复使用的细粒度对象时。实质上是一种共享技术。
2、优点
利用享元池,可以使得用户在调用一个对象时可以不必去new,只需要在享元池中直接获取即可,节约了内存空间。
注:太多的对象不仅会影响性能,更严重的情况下可能会造成内存溢出
3、缺点
1)逻辑会更加的复杂。
2)对于一些享元池中不能直接取出的对象,还是需要去new,这时利用了享元模式获取对象的时间会变得更长。
4、角色
1)抽象享元类
接口/抽象类
2)具体享元类
实现接口或者抽象类的具体子类,这些子类会被大量的重复使用,而且这些子类对象都是细粒度。
3)享元工厂类
工厂其实就是一个享元池
4)组合享元类
组合享元类是依赖基本享元类产生的一个整体类,例如享元池中,如果有字符A、B,我们其实可以利用这两个字符对象构成一个AB字符串,这就是一个组合享元类。
评论 (0)
登录后可评论,请 登录 或 注册
评论您没有权限执行当前操作