java23中設計模式之代理模式
阿新 • • 發佈:2017-10-14
唱歌 [] lap pen 技術分享 contract rac display images
staticproxy ---靜態代理
package com.bjsxt.proxy.staticProxy; public interface Star { /** * 面談 */ void confer(); /** * 簽合同 */ void signContract(); /** * 訂票 */ void bookTicket(); /** * 唱歌 */ void sing(); /** * 收錢 */ voidstarcollectMoney(); }
package com.bjsxt.proxy.staticProxy; public class RealStar implements Star { @Override public void bookTicket() { System.out.println("RealStar.bookTicket()"); } @Override public void collectMoney() { System.out.println("RealStar.collectMoney()"); } @Override publicrealstarvoid confer() { System.out.println("RealStar.confer()"); } @Override public void signContract() { System.out.println("RealStar.signContract()"); } @Override public void sing() { System.out.println("RealStar(周傑倫本人).sing()"); } }
package com.bjsxt.proxy.staticProxy; public class ProxyStar implements Star { private Star star; public ProxyStar(Star star) { super(); this.star = star; } @Override public void bookTicket() { System.out.println("ProxyStar.bookTicket()"); } @Override public void collectMoney() { System.out.println("ProxyStar.collectMoney()"); } @Override public void confer() { System.out.println("ProxyStar.confer()"); } @Override public void signContract() { System.out.println("ProxyStar.signContract()"); } @Override public void sing() { star.sing(); } }proxystar
package com.bjsxt.proxy.staticProxy; public class Client { public static void main(String[] args) { Star real = new RealStar(); Star proxy = new ProxyStar(real); proxy.confer(); proxy.signContract(); proxy.bookTicket(); proxy.sing(); proxy.collectMoney(); } }client
dynamicproxy動態代理
java23中設計模式之代理模式