Паттерн: Приспособленец (Flyweight)
Исходник: TagFactory.java, язык: java [code #477, hits: 6549]
автор: this [добавлен: 01.09.2007]
  1. package flyweight;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. public class TagFactory {
  7. private Map<String, HtmlTag> tags;
  8.  
  9. public TagFactory() {
  10. tags = new HashMap<String, HtmlTag>();
  11. }
  12.  
  13. public ATag GetATag() {
  14. if (tags.get("a") == null) {
  15. tags.put("a", new ATag());
  16. }
  17. return (ATag) tags.get("a");
  18. }
  19.  
  20. public PTag GetPTag() {
  21. if (tags.get("p") == null) {
  22. tags.put("p", new PTag());
  23. }
  24. return (PTag) tags.get("p");
  25. }
  26.  
  27. public DivTag GetDivTag() {
  28. if (tags.get("div") == null) {
  29. tags.put("div", new DivTag());
  30. }
  31. return (DivTag) tags.get("div");
  32. }
  33.  
  34. public ImgTag GetImgTag() {
  35. if (tags.get("img") == null) {
  36. tags.put("img", new ImgTag());
  37. }
  38. return (ImgTag) tags.get("img");
  39. }
  40.  
  41. }
Сущность FlyweightFactory

Функционал фабрики, для получения всех используемых на странице тегов-приспособленцев.
Тестировалось на: java 1.5.0_04

+добавить реализацию