享元模式Golang

享元模式

享元模式(Flyweight Pattern): 主要是减少创建对象的数量, 以减少内存占用和提升性能.
何时使用:系统中有大量对象,这些对象消耗大量内存,这些对象的状态大部分可以外部化。

优点 和 缺点

优点: 大大减少对象的创建,降低系统的内存,使效率提高。
缺点: 外部状态具有固有化的性质, 提高了系统的复杂度, 需要分离出外部和内部状态.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
type Employee interface {
report()
}

type Manager struct {
title string
department string
reportContent string
}

func NewManager(department string) Manager {
return Manager{
title: "manager",
department: department,
}
}

func (m *Manager) SetReportContent(reportContent string) {
m.reportContent = reportContent
}

type EmployeeFactory struct {
employeeMap map[string]Employee
}

func NewEmployeeFactory() *EmployeeFactory {
return &EmployeeFactory{
employeeMap: make(map[string]Employee),
}
}

Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2021 Noonde All Rights Reserved.

UV : | PV :