标签:
1.享元模式(Flyweight)
定义:享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。

1.1 工厂
//工厂:内置一个池,如果存在了则取出,否则则创建加入池中
public class FactoryPool {
private Hashtable<String,Person> pool=new Hashtable<String,Person>();
public Person getPerson(String name)
{
//先从池中将人取出,没有则创建一个放入池中
Person p=pool.get(name);
if(p==null)
{
//创建并加入池中
System.out.println("工厂新建一个人:"+name);
p=new Person(name);
pool.put(name, p);
}
System.out.println("返回一个人:"+name);
return p;
}
}
class Person
{
private String name;
public Person (String name)
{
this.name=name;
}
}
1.2 测试
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
FactoryPool f=new FactoryPool();
//从工厂中取人
Person p2=f.getPerson("hq");
Person p3=f.getPerson("cyx");
Person p1=f.getPerson("hq");
}
}
1.3 运行结果
工厂新建一个人:hq 返回一个人:hq 工厂新建一个人:cyx 返回一个人:cyx 返回一个人:hq
标签:
原文地址:http://www.cnblogs.com/beyondbycyx/p/4434774.html