Паттерн: Одиночка (Singleton)
Исходник: SomeFactory.java, модификация, язык: java [code #434, hits: 8702]
автор: this [добавлен: 30.06.2007]
  1. package singleton;
  2.  
  3. public class SomeFactory {
  4. static private SomeFactory _instance;
  5.  
  6. protected SomeFactory() {
  7. // ....
  8. }
  9.  
  10. public static SomeFactory instance() {
  11. if (_instance == null) {
  12. String factoryStyle = System.getProperty("patterns.book.factoryStyle");
  13.  
  14. if (factoryStyle.equals("wise")) {
  15. _instance = new WiseFactory();
  16. } else if (factoryStyle.equals("quick")) {
  17. _instance = new QuickFactory();
  18. } else {
  19. _instance = new SomeFactory();
  20. }
  21. }
  22. return _instance;
  23. }
  24.  
  25. // Factory methods, producing products...
  26. public Object getProduct1() {
  27. // .....
  28. return new Object();
  29. }
  30.  
  31. public Object getProduct2() {
  32. // .....
  33. return new Object();
  34. }
  35.  
  36. // .....
  37. }
Сущность Singleton

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

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