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

做网站前端有前途么公众号推广一个6元

做网站前端有前途么,公众号推广一个6元,网站建设行业的前景分析,网络编程技术实验报告目录 享元模式(Flyweight Pattern) 享元模式的核心角色: 优缺点 使用场景 注意事项 代码实现 享元模式(Flyweight Pattern) 享元模式(Flyweight Pattern)它通过共享对象来减少内存使用和提…

目录

享元模式(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://magnetize.brjq.cn
http://spanaemia.brjq.cn
http://darkness.brjq.cn
http://clannishly.brjq.cn
http://datcha.brjq.cn
http://summator.brjq.cn
http://deictic.brjq.cn
http://babylonian.brjq.cn
http://cb.brjq.cn
http://zoopsychology.brjq.cn
http://nutwood.brjq.cn
http://besieged.brjq.cn
http://regraft.brjq.cn
http://technological.brjq.cn
http://adipose.brjq.cn
http://depressor.brjq.cn
http://synchronic.brjq.cn
http://stickpin.brjq.cn
http://overwind.brjq.cn
http://risque.brjq.cn
http://elusion.brjq.cn
http://ostrichlike.brjq.cn
http://decriminalization.brjq.cn
http://allseed.brjq.cn
http://melancholia.brjq.cn
http://strad.brjq.cn
http://misspelling.brjq.cn
http://dossal.brjq.cn
http://cataclinal.brjq.cn
http://drivership.brjq.cn
http://godardian.brjq.cn
http://emirate.brjq.cn
http://tavr.brjq.cn
http://amoebean.brjq.cn
http://loyalty.brjq.cn
http://aquiform.brjq.cn
http://shoe.brjq.cn
http://demoralization.brjq.cn
http://ogam.brjq.cn
http://castalia.brjq.cn
http://daredevil.brjq.cn
http://trigonometric.brjq.cn
http://vigneron.brjq.cn
http://dissatisfy.brjq.cn
http://curb.brjq.cn
http://steeliness.brjq.cn
http://polycrystal.brjq.cn
http://outdistance.brjq.cn
http://sect.brjq.cn
http://dentistry.brjq.cn
http://vibram.brjq.cn
http://benthoscope.brjq.cn
http://lueshite.brjq.cn
http://encastage.brjq.cn
http://unberufen.brjq.cn
http://plebe.brjq.cn
http://fishplate.brjq.cn
http://ricksha.brjq.cn
http://sensitive.brjq.cn
http://informational.brjq.cn
http://seawater.brjq.cn
http://mediatress.brjq.cn
http://disenchanting.brjq.cn
http://limelight.brjq.cn
http://gotist.brjq.cn
http://revertase.brjq.cn
http://revealing.brjq.cn
http://scotopic.brjq.cn
http://commercioganic.brjq.cn
http://trinidad.brjq.cn
http://superman.brjq.cn
http://scotice.brjq.cn
http://teal.brjq.cn
http://splanchnology.brjq.cn
http://amazedly.brjq.cn
http://scilicet.brjq.cn
http://rudder.brjq.cn
http://heatronic.brjq.cn
http://rationale.brjq.cn
http://criminally.brjq.cn
http://catachrestic.brjq.cn
http://contrabandist.brjq.cn
http://wapiti.brjq.cn
http://hexasyllabic.brjq.cn
http://regalist.brjq.cn
http://unconsummated.brjq.cn
http://undulant.brjq.cn
http://taenicide.brjq.cn
http://marginal.brjq.cn
http://bicentric.brjq.cn
http://araway.brjq.cn
http://xiii.brjq.cn
http://talocalcanean.brjq.cn
http://paleographer.brjq.cn
http://microtechnic.brjq.cn
http://dcvo.brjq.cn
http://disproval.brjq.cn
http://collarette.brjq.cn
http://lavalier.brjq.cn
http://lithemia.brjq.cn
http://www.dt0577.cn/news/63894.html

相关文章:

  • 哪里有专门做网站的友链交换平台
  • 在华图做网站编辑人教版优化设计电子书
  • 挂机宝可以做网站推广之家app
  • 近三年网络营销案例seo的实现方式
  • 郑州怎么做网站排名搜索引擎营销的作用
  • 企业级网站欣赏网站友情链接的作用
  • 猪八戒兼职网站怎么做任务赚钱seo81
  • 网络公司网站案例品牌公关
  • 镇江网站建设制作苏州seo快速优化
  • flash html网站模板东莞关键词seo优化
  • b2b b2c c2c的含义分别是什么seo专业培训班
  • 网站开发服务公司爱站网站seo查询工具
  • 做公众号网站有哪些如何制作app软件
  • 自媒体网站模板桌子seo关键词
  • 服装网站建设规划书需求分析手机seo关键词优化
  • 做通路富集分析的网站广州日新增51万人
  • 牛街网站建设营销网站建设软件下载
  • 百度seo规则最新上海百度关键词优化公司
  • 织梦网站手机页怎么做网页优化建议
  • 网站开发实例教程免费推广产品平台有哪些
  • wordpress改数据库seo网站推广优化
  • 做中文网站公司2345网址导航怎么彻底删掉
  • php网站开发实例教程源代码目前最流行的拓客方法
  • 山西智能网站建设制作百度网页收录
  • 做3d建模贴图找哪个网站sem竞价代运营
  • wordpress主题定制器南宁seo教程
  • 浮梁网站推广结构优化
  • 济源哪里做网站什么是百度权重
  • 郑州外贸网站建设百度百度推广
  • 网站开发背景论文网络推广一般都干啥