天天看點

我看懂的設計模式 Facade,外觀模式/門面模式

package com.cbf4life.facade;
 public interface LetterProcess {

 //首先要寫信的内容
 public void writeContext(String context);
 //其次寫信封
 public void fillEnvelope(String address);
 //把信放到信封裡
 public void letterInotoEnvelope();
 //然後郵遞
 public void sendLetter();
 }

 package com.cbf4life.facade;
 public class LetterProcessImpl implements LetterProcess {
 public void writeContext(String context) {
 System.out.println("填寫信的内容...." + context);
 }
 public void fillEnvelope(String address) {
 System.out.println("填寫收件人位址及姓名...." + address);
 }
 public void letterInotoEnvelope() {
 System.out.println("把信放到信封中....");
 }
 public void sendLetter() {
 System.out.println("郵遞信件...");
 }
 } package com.cbf4life.facade;

 public class Client {
 public static void main(String[] args) {

 LetterProcess letterProcess = new LetterProcessImpl();

 letterProcess.writeContext("Hello,It's me,do you know who I am? I'm your
 old lover. I'd like to....");

 letterProcess.fillEnvelope("Happy Road No. 666,God Province,Heaven");

 letterProcess.letterInotoEnvelope();

 letterProcess.sendLetter();
 }
 }

 //這就是門面模式,還是比較簡單的,Sub System 比較複雜,為了讓調用者更友善的調用,就對Sub System
 //進行了封裝,增加了一個門面,Client 調用時,直接調用門面的方法就可以了,不用了解具體的實作方法
 //以及相關的業務順序,隻是增加了一個ModenPostOffice 類
 package com.cbf4life.facade;

 public class ModenPostOffice {
 private LetterProcess letterProcess = new LetterProcessImpl();
 public void sendLetter(String context,String address){
 letterProcess.writeContext(context);
 letterProcess.fillEnvelope(address);
 letterProcess.letterInotoEnvelope();
 letterProcess.sendLetter();
 }
 }

 package com.cbf4life.facade;

 public class Client {
 public static void main(String[] args) {
 //現代化的郵局,有這項服務,郵局名稱叫Hell Road
 ModenPostOffice hellRoadPostOffice = new ModenPostOffice();
 //你隻要把信的内容和收信人位址給他,他會幫你完成一系列的工作;
 String address = "Happy Road No. 666,God Province,Heaven"; //定義一個位址
 String context = "Hello,It's me,do you know who I am? I'm your old lover.
 I'd like to....";
 hellRoadPostOffice.sendLetter(context, address);
 }
 }      

繼續閱讀