設計模式之靜態代理模式
阿新 • • 發佈:2018-08-12
sta 設計 interface 技術分享 face nbsp 圖片 pre his
//設計模式之靜態代理模式 interface Chefer { void BecomeChefer(); } //小明想當廚師,天天做好吃的 class XiaoMing implements Chefer { @Override public void BecomeChefer() { System.out.println("我要學廚藝"); } } //我是中介,錢出夠了什麽都妥了 class Proxy implements Chefer { //靜態代理模式需要把對象傳進來 private XiaoMing xiaoMing; Proxy(XiaoMing xiaoMing) {this.xiaoMing = xiaoMing; } @Override public void BecomeChefer() { System.out.println("我是中介,你想要幹啥"); xiaoMing.BecomeChefer(); System.out.println("先給錢"); } } public class Demo4 { public static void main(String[] args) { Proxy proxy = new Proxy(newXiaoMing()); proxy.BecomeChefer(); } } 輸出: 我是中介,你想要幹啥 我要學廚藝 我開始幫你找啦
靜態代理模式有一個很嚴重的缺點,就是需要生成一個代理類,很麻煩,不推薦
設計模式之靜態代理模式