Java Tutorial/Design Pattern/Facade Pattern

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

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>