享元模式

来源:互联网 发布:nginx部署多个网站 编辑:程序博客网 时间:2024/06/06 00:43

享元模式(结构型模式)

Flyweight模式也叫享元模式,是结构型模式之一,他通过与其他类似对象共享数据来减小内存占用

比如一个英文的word文档,其只创建了52(大小写)个字母,如果出现了重复的则共用

MyChar.java 共享的类

public class MyChar {    private char c;    public MyChar(char c) {        super();        this.c = c;    }}

MyCharFactory.java 共享工厂

public class MyCharFactory {    private Map<Character, MyChar> pool = new HashMap<Character, MyChar>();    public MyChar getMyChar(Character c) {        if (!pool.containsKey(c)) { //没有则创建            pool.put(c, new MyChar(c));        }        return pool.get(c);    }}

Test.java 测试类

public class Test {    public static void main(String[] args) {        MyCharFactory myCharFactory = new MyCharFactory();        MyChar a = myCharFactory.getMyChar('a');        MyChar b = myCharFactory.getMyChar('a');        System.out.println(a == b);    }}

结果

true
原创粉丝点击