博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式系列——单例模式 享元模式
阅读量:7032 次
发布时间:2019-06-28

本文共 664 字,大约阅读时间需要 2 分钟。

单例模式:

保证一个类仅有一个实例,并提供一个访问它的全局访问点。、

结构图:

注意多线程的单例。

 

享元模式:

 

享元的英文是Flyweight,它是一个来自于体育方面的专业用语,在拳击、摔跤和举重比赛中特指最轻量的级别。把这个单词移植到软件工程里面,也是用来表示特别小的对象,即细粒度对象。Flyweight享元,可以理解为共享元对象,也就是共享细粒度对象。享元模式就是通过使用共享的方式,达到高效地支持大量的细粒度对象。它的目的就是节省占用的空间资源,从而实现系统性能得到改善。

享元模式主要作用是实现对象的共享,即使用共享池,从而减少内存分配的开销。享元模式通常与工厂模式一起使用,它包含了多个共享的组合对象,因此:享元模式=单例模式+工厂模式+合成模式,其结构如图12-25所示。

 

 

其中:FlyweightFactoiy享元工厂负责创建和管理享元对象,它必须保证享元对象可以被系统适当共享。当一个客户端对象请求一个享元对象的时候,享元工厂需要检查系统中是否已经有一个符合要求的享元对象,如果已经有了,享元工厂就应当提供这个已有的享元对象;如果系统中没有一个适当的享元对象的话,享元工厂就应当创建一个新的合适的享元对象。Flyweight是所有的具体享元类的超类,为这些类规定出需要实现的公共接口或抽象类。MyFlyweight1和MyFlyweight2则是实现抽象享元所规定的接口。

转载于:https://www.cnblogs.com/stonehat/archive/2012/04/16/2451973.html

你可能感兴趣的文章
PHP最常用函数TOP100(翻译)
查看>>
大数据科学新发展展望:不得不知的四大趋势
查看>>
python多线程、锁、event事件机制的简单使用
查看>>
ES6系列之解构赋值
查看>>
goLang 文件操作之二
查看>>
7大维度看国外企业为啥选择gRPC打造高性能微服务?
查看>>
HTTP协议类
查看>>
建造者模式
查看>>
【redux篇】middleware 之 redux-thunk
查看>>
数据结构---图的相关总结
查看>>
Linux平台上部署Mongoose服务器的方法介绍
查看>>
Node中间层实践(二)——搭建项目框架
查看>>
erget源码分析(2):全局哈希基类和全局异步函数对象接口
查看>>
解码方法
查看>>
Electron入门介绍
查看>>
从egg.js重新认识node后端开发
查看>>
聊聊springboot session timeout参数设置
查看>>
微信小程序调研
查看>>
window下git多账户管理
查看>>
【327天】我爱刷题系列086(2017.12.29)
查看>>