当前位置: 首页 > news >正文

包头网站濮阳做网站建设的公司

包头网站,濮阳做网站建设的公司,申请建设工作网站的函,api导入wordpress目录 享元模式#xff08;Flyweight Pattern#xff09; 享元模式的核心角色#xff1a; 优缺点 使用场景 注意事项 代码实现 享元模式#xff08;Flyweight Pattern#xff09; 享元模式#xff08;Flyweight Pattern#xff09;它通过共享对象来减少内存使用和提…目录 享元模式Flyweight Pattern 享元模式的核心角色 优缺点 使用场景 注意事项 代码实现 享元模式Flyweight Pattern 享元模式Flyweight Pattern它通过共享对象来减少内存使用和提高性能。享元模式的核心思想是共享当需要创建一个新对象时首先检查是否已经有与其相同的对象存在如果存在则直接返回该对象的引用如果不存在则创建一个新对象并将其加入对象池中以供下次使用。通过这种方式可以避免重复创建相同的对象从而减少内存占用和提高性能。 使用享元模式需要有两个前提1享元对象不可变当享元模式创建出来后它的变量和属性不会被修改2系统中存在大量重复对象这些重复对象可以使用同一个享元内存中只存在一份这样会节省大量空间。当然这也是为什么享元对象不可变的原因因为有很多引用变更的话会引起很多问题。 享元模式的核心角色 享元工厂Flyweight Factory负责创建和管理享元对象。它维护一个享元池Flyweight Pool用于存储已经创建的享元对象。享元对象Flyweight表示可以共享的对象。享元对象通常包含内部状态和外部状态。内部状态是不变的可以被多个对象共享外部状态是可变的每个对象都有自己的外部状态。 优缺点 1优点 缩小对象的创立升高内存中对象的数量升高零碎的内存提高效率。缩小内存之外的其余资源占用。 2缺点 为了使对象可以共享需要将一些不能共享的状态外部化这将增加程序的复杂性。读取享元模式的外部状态会使得运行时间稍微变长。 使用场景 系统有大量相似对象。需要缓冲池的场景。 注意事项 1注意划分外部状态和内部状态否则可能会引起线程安全问题。2这些类必须有一个工厂对象加以控制。 代码实现 package mainimport fmt// 一个文字编辑器需要处理大量的字符对象。每个字符对象都有自己的字体、大小和颜色等属性。由于字符对象可能非常多 // 如果每个字符对象都占用大量内存将导致内存消耗过大。我们希望能够通过共享相同属性的字符对象来减少内存使用。// 享元对象字符对象 type Character struct {char runefont stringsize intcolor string }func (c *Character) Display() {fmt.Printf(Character: %c, Font: %s, Size: %d, Color: %s\n, c.char, c.font, c.size, c.color) }// 享元工厂字符工厂 type CharacterFactory struct {characters map[rune]*Character }func NewCharacterFactory() *CharacterFactory {return CharacterFactory{characters: make(map[rune]*Character),} }func (f *CharacterFactory) GetCharacter(char rune, font string, size int, color string) *Character {key : charif _, ok : f.characters[key]; !ok {f.characters[key] Character{char: char,font: font,size: size,color: color,}}return f.characters[key] }// 客户端代码 func main() {factory : NewCharacterFactory()char1 : factory.GetCharacter(A, Arial, 12, Red)char1.Display()char2 : factory.GetCharacter(A, Times New Roman, 14, Blue)char2.Display()char3 : factory.GetCharacter(B, Times New Roman, 14, Blue)char3.Display()char4 : factory.GetCharacter(B, Arial, 12, Red)char4.Display() }
http://www.hkea.cn/news/14579602/

相关文章:

  • 网站仿制 个人廊坊网站建设公司
  • 柳州做网站的360做网站的
  • 网站建设放在哪个费用做调查赚钱的网站有哪些
  • 网站语音转写怎么做广东华电建设股份有限公司网站
  • 公司建站详细步骤网络营销的基本特征有哪七个
  • 二级域名网站建设十堰市网络运营中心
  • 淄博网站建设 很乱目前做的最好的招聘网站
  • 如何制作一个简单的网站wordpress主题简
  • 响应式网站建设的未来发展让wordpress 具有菜单功能
  • 聚名网appseo推广优化方案
  • 做网站的感想与收获做公司网站的公司
  • 怎样创建网站的代码python线上培训比较好的机构
  • 赣州网站建设顺企网南阳公司网站建设
  • 深喘旋磨做紧夹断妖精网站石家庄seo结算
  • 邯郸做网站外包网站建设比较好的多少钱
  • 叫任何一个人一个小时做网站乐从网站开发
  • 青岛行业网站建设电话眼镜网站模板
  • 南宁市做公司网站网上接网站做
  • wordpress 账号插件专业网站优化
  • 国外可以做推广的网站吗网站icp备案证明
  • 公司网站没备案企业网站百度收录
  • 企业网站源码带支付域名注册网站查询工具
  • 怎么找到网站后台农村基本制度建设网站
  • 重庆网站建设选卓光介绍好的免费网站模板下载地址
  • 虚拟主机怎么设计网站吗单位做网站怎么做
  • 在线代理网页浏览网站创保网
  • 广州做营销网站公司外贸网站源代码下载
  • 免费空间做网站wordpress手机上图片不显示
  • 鄠邑区建设局网站深圳商业策划公司十大公司
  • 无法打开建行网站爱站网关键词搜索