Flyweight パターンAdvertisementオブジェクトを再利用する
複数のクライアントから使用されるオブジェクトをプールしておき、再利用する。よく使われるクラスに適用すると、オブジェクト生成にかかる時間を節約することができる。
サンプルコード
クラス Figure
public class Figure {
private String name = null;
public Figure(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void draw(){
System.out.println(name);
}
}
クラス FigureFactory
import java.util.HashMap;
public class FigureFactory {
private FigureFactory(){}
private static HashMap map = new HashMap();
public static Figure get(String name){
Figure figure = null;
figure = (Figure)map.get(name);
if(figure == null){
System.out.println("オブジェクト" + name + "生成");
figure = new Figure(name);
map.put(name, figure);
}
return figure;
}
}
クラス Main
public class Main {
public static void main(String[] args) {
Figure triangleA = FigureFactory.get("Triangle");
Figure triangleB = FigureFactory.get("Triangle");
Figure squareA = FigureFactory.get("Square");
Figure squareB = FigureFactory.get("Square");
Figure squareC = FigureFactory.get("Square");
triangleA.draw();
triangleB.draw();
squareA.draw();
squareB.draw();
squareC.draw();
}
}
Advertisement |
ショートカット・634トップページ・このカテゴリのトップページに戻る ・634ラボ サイト検索Y!ログール |