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;
}
}