设计模式-享元模式

  1. 享元模式

享元模式

用于减少创建对象的数量 如String

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

/**
* @USER: lynn
* @DATE: 2020/4/26
**/
public class 享元模式 {
public static void main(String[] args) {
字符串 string1 = 对象工厂.getChars("a");
string1.print();
字符串 string2 = 对象工厂.getChars("a");
string2.print();
字符串 string3 = 对象工厂.getChars("b");
string3.print();
}
}
interface 对象{
public void print();
}
class 字符串 implements 对象{
String chars;

public 字符串(String chars) {
this.chars = chars;
}

public String getChars() {
return chars;
}

public void setChars(String chars) {
this.chars = chars;
}

@Override
public void print() {
System.out.println(chars);
}
}

class 对象工厂{
private static final HashMap<String,字符串> 字符串对象池 = new HashMap<>();

public static 字符串 getChars(String chars){
字符串 字符串对象 = 字符串对象池.get(chars);

if (字符串对象 == null){
字符串对象 = new 字符串(chars);
字符串对象池.put(chars,字符串对象);
System.out.println("向字符串对象池插入一个对象:"+字符串对象.toString());
}
return 字符串对象;
}
}
  • 使用场景
    • 系统中有大量相似对象
    • 缓冲池场景

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 yanglau0527@gmail.com

文章标题:设计模式-享元模式

文章字数:265

本文作者:Cynaith

发布时间:2020-05-02, 01:22:45

最后更新:2020-05-02, 01:26:34

原始链接:https://cynaith.github.io/2020/05/02/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E4%BA%AB%E5%85%83%E6%A8%A1%E5%BC%8F/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏