Java 设计模式 之 鹰量模式

http://www.verejava.com/?id=16999120847970

package com.flyweight.theory;

public class TestChess
{
	public static void main(String[] args)
	{
		Chess black1=ChessFactory.getChess("黑棋");
		
		Chess black2=ChessFactory.getChess("黑棋");
		
		
		Chess white1=ChessFactory.getChess("白棋");
		
		System.out.println(ChessFactory.getSize());
	}
}





package com.flyweight.theory;

import java.util.HashMap;
import java.util.Map;

public class ChessFactory
{
	private static Map<String,Chess> map=new HashMap<String,Chess>();
	
	public static int getSize()
	{
		return map.size();
	}
	
	public static Chess getChess(String key)
	{
		Chess chess=null;
		if(map.get(key)==null)
		{
			chess=new Chess(key);
			map.put(key, chess);
		}
		else
		{
			chess=map.get(key);
		}
		return chess;
	}
}





package com.flyweight.theory;

public class Chess
{
	private int x,y;
	private String type;
	
	public Chess(String type)
	{
		super();
		this.type = type;
	}
	public int getX()
	{
		return x;
	}
	public void setX(int x)
	{
		this.x = x;
	}
	public int getY()
	{
		return y;
	}
	public void setY(int y)
	{
		this.y = y;
	}
	public String getType()
	{
		return type;
	}
	
	
}


http://www.verejava.com/?id=16999120847970

posted @ 2018-06-28 09:21  verejava  阅读(155)  评论(0编辑  收藏  举报