码迷,mamicode.com
首页 > 编程语言 > 详细

java-设计模式(结构型)-【享元模式】

时间:2015-04-17 15:20:50      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

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

  

 

java-设计模式(结构型)-【享元模式】

标签:

原文地址:http://www.cnblogs.com/beyondbycyx/p/4434774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!