Java Tutorial/Design Pattern/Facade Pattern
Facade Pattern Demo
<source lang="java">
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); }
}</source>
Facade pattern demo 2
<source lang="java">
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); }
}</source>