Паттерн: Заместитель (Proxy)
Исходник: ProductProxy.java, язык: java [code #481, hits: 9038]
автор: this [добавлен: 09.09.2007]
  1. package proxy;
  2.  
  3. public class ProductProxy implements ProductI {
  4. private ProductI prod;
  5.  
  6. public ProductProxy(ProductI prod) {
  7. this.prod = prod;
  8. }
  9.  
  10. public String getName() {
  11. if (!isDelivery()) {
  12. return "[NOT DELIVERED] " + prod.getName();
  13. }
  14. return prod.getName();
  15. }
  16.  
  17. public int getPrice() {
  18. if (isDelivery()) {
  19. return prod.getPrice() - ProductI.DELIVERY_COST;
  20. }
  21. return prod.getPrice();
  22. }
  23.  
  24. public boolean isDelivery() {
  25. return prod.isDelivery();
  26. }
  27.  
  28. public String toString() {
  29. return getName() + ", $" + getPrice();
  30. }
  31.  
  32. }
Сущность Proxy

Заместитель продукта, прозрачно выполняет вспомогательные действия.
Тестировалось на: java 1.5.0_04

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