package designpattern.facade; public class HandleTrouble { public void call110(String trouble) { System.out.println(trouble); // 模擬接警員處理來電 if (trouble.indexOf("搶劫") > 0 || trouble.indexOf("殺人") > 0) { CriminalPolice criminalPolice = new CriminalPolice(); criminalPolice.handleIt(); } else if (trouble.indexOf("追尾") > 0 || trouble.indexOf("撞車") > 0) { TrafficPolice trafficPolice = new TrafficPolice(); trafficPolice.handleIt(); } else if (trouble.indexOf("起火") > 0 || trouble.indexOf("燒起來") > 0) { System.out.println("轉接火警..."); FirePolice firePolice = new FirePolice(); firePolice.handleIt(); } else { PeoplePolice peoplePolice = new PeoplePolice(); peoplePolice.handleIt(); } } }
package designpattern.facade; public class CriminalPolice { public void handleIt() { System.out.println("刑警出動..."); } }
package designpattern.facade; public class TrafficPolice { public void handleIt() { System.out.println("交警出動..."); } }
package designpattern.facade; public class FirePolice { public void handleIt() { System.out.println("火警出動..."); } }
package designpattern.facade; public class PeoplePolice { public void handleIt() { System.out.println("民警出動..."); } }
package designpattern.facade; public class Client { public static void main(String[] args) { HandleTrouble handleTrouble = new HandleTrouble(); handleTrouble.call110("救命啊,殺人啦,快來人啊~~~~~"); System.out.println("-------------------"); handleTrouble.call110("XX大樓起火了"); System.out.println("-------------------"); handleTrouble.call110("有人打架了,快來人"); System.out.println("-------------------"); } }
輸出結果:算法
救命啊,殺人啦,快來人啊~~~~~ 刑警出動... ------------------- XX大樓起火了 轉接火警... 火警出動... ------------------- 有人打架了,快來人 民警出動... -------------------