Java Tutorial/Design Pattern/Facade Pattern — различия между версиями

Материал из Java эксперт
Перейти к: навигация, поиск
 
м (1 версия)
 
(нет различий)

Текущая версия на 05:02, 1 июня 2010

Facade Pattern Demo

class A {
  public A(int x) {
  }
}
class B {
  public B(long x) {
  }
}
class C {
  public C(double x) {
  }
}
public class Facade {
  static A makeA(int x) {
    return new A(x);
  }
  static B makeB(long x) {
    return new B(x);
  }
  static C makeC(double x) {
    return new C(x);
  }
  public static void main(String args[]) {
    // The client programmer gets the objects by calling the static methods:
    A a = Facade.makeA(1);
    B b = Facade.makeB(1);
    C c = Facade.makeC(1.0);
  }
}





Facade pattern demo 2

public class TestFacade {
  public static void main(String args[]) {
    SimpleProductFacade simpleProductFacade = new SimpleProductFacade();
    simpleProductFacade.setName("printer");
    System.out.println("The product is a " + simpleProductFacade.getName());
  }
}
class SimpleProductFacade {
  DifficultProduct difficultProduct;
  public SimpleProductFacade() {
    difficultProduct = new DifficultProduct();
  }
  public void setName(String n) {
    char chars[] = n.toCharArray();
    if (chars.length > 0) {
      difficultProduct.setFirstNameCharacter(chars[0]);
    }
    if (chars.length > 1) {
      difficultProduct.setSecondNameCharacter(chars[1]);
    }
  }
  public String getName() {
    return difficultProduct.getName();
  }
}
class DifficultProduct {
  char nameChars[] = new char[10];
  public DifficultProduct() {
  }
  public void setFirstNameCharacter(char c) {
    nameChars[0] = c;
  }
  public void setSecondNameCharacter(char c) {
    nameChars[1] = c;
  }

  public String getName() {
    return new String(nameChars);
  }
}