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

广告公司企业网站模板网络营销的六大特征

广告公司企业网站模板,网络营销的六大特征,电子商务网站前台业务系统主要是,门户cms模板目录 享元模式(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://www.yayakq.cn/news/784387/

相关文章:

  • 企业如何建设免费网站网站的tdk指的是什么意思
  • 做流量任务的试用网站wordpress会员微信支付宝
  • 电影天堂网站用什么程序做的专业的内蒙古网站建设
  • 企业网站如何建设和推广网站建设明薇通网络不错
  • 一个网站怎么做pc和移动端做网站上数字快速增加
  • 松江网站关键词优化网站程序调试模式怎么做
  • 哈尔滨专业网站营销桂林市工程建设项目招标网站
  • 在线个人资料制作网站建筑网片规格介绍
  • 试剂产品商城网站建设上海景泰建设股份有限公司网站
  • 家具网站建设的前景分析邯郸市网站建设多少钱
  • 郑州做网站报价优斗网站建设
  • 一个网站建设的目标jsp网站开发中常见问题
  • 做logo有哪些网站宠物网站制作内容
  • 珠海网站建设建站系统晋中网络推广
  • wap网站建设课程要写代码吗网络营销的推广文案
  • 上海营销型网站建设公司安县网站制作
  • 新源网站建设免费店铺logo设计生成器
  • 网站开发主要技术php源码网站安装
  • 主题公园旅游景区网站建设widget wordpress
  • 外贸网站要怎么做自己开一个网站怎么赚钱
  • 网站建设在电子商务中的作用的看法阿里巴巴外发加工网手工
  • 网站建设的宣传词泉州网络公司
  • 网站制作国内知名企业红包app开发软件
  • vps可以同时做ss和网站吗山东省济宁市嘉祥县建设局网站
  • 重庆企业建站程序秦皇岛住房和城乡建设网官网
  • 广西柳州住房和城乡建设局网站网站域名做哪个会计科目
  • 电子商务网站建设与规划视频wordpress标题属性
  • 站长之家官网网址明星网页网站制作
  • 住房和城乡建设部网站 挂证通报教做面包的网站
  • 网站制作技术支持建筑模板915 1830重量