package flyweight; public class TagFactory { private Map<String, HtmlTag> tags; public TagFactory() { tags = new HashMap<String, HtmlTag>(); } public ATag GetATag() { if (tags.get("a") == null) { tags.put("a", new ATag()); } return (ATag) tags.get("a"); } public PTag GetPTag() { if (tags.get("p") == null) { tags.put("p", new PTag()); } return (PTag) tags.get("p"); } public DivTag GetDivTag() { if (tags.get("div") == null) { tags.put("div", new DivTag()); } return (DivTag) tags.get("div"); } public ImgTag GetImgTag() { if (tags.get("img") == null) { tags.put("img", new ImgTag()); } return (ImgTag) tags.get("img"); } }