Java Tutorial/Design Pattern/Facade Pattern
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);
}
}