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);
}
}