Flyweightパターン
重いクラスインスタンスは共有しましょうという考え。
共有すると、一カ所の変更がすべてに影響を及ぼすので注意が必要。
public class FlyweightFactory { private Hashtable make_objs = new Hashtable(); public FlyweightFactory(){} //共有するオブジェクト(この例ではItemクラス)はこのメソッドを使用して生成する。 //Mementoパターンを使って、このクラスでのみnewができるようにするとよい。 public Item getItem(String name) { if(make_objs[name] != null) { make_objs[name] = new Item(name); } return (Item)make_objs[name]; } }