JAVA设计模式之静态代理

来源:互联网 发布:今创集团 常州乎 编辑:程序博客网 时间:2024/06/06 11:02

以明星和经纪人为例子

package com.imust.proxy.staticProxy;public interface Star {    /**     * 面谈     */    void confer();    /**     * 签合同     */    void signContract();    /**     * 订票     */    void bookTicket();    /**     * 唱歌     */    void sing();    /**     * 收钱     */    void collect();}
package com.imust.proxy.staticProxy;public class RealStar implements Star{    @Override    public void confer() {        System.out.println("RealStar.confer()");    }    @Override    public void signContract() {        System.out.println("RealStar.signContract()");    }    @Override    public void bookTicket() {        System.out.println("RealStar.bookTicket()");    }    @Override    public void sing() {        System.out.println("RealStar(周杰伦).sing()");    }    @Override    public void collect() {        System.out.println("RealStar.collect()");    }}
package com.imust.proxy.staticProxy;public class ProxyStar implements Star{    private Star star;    public ProxyStar(Star star){        super();        this.star = star;    }    @Override    public void confer() {        System.out.println("ProxyStar.confer()");    }    @Override    public void signContract() {        System.out.println("ProxyStar.signContract()");    }    @Override    public void bookTicket() {        System.out.println("ProxyStar.bookTicket()");    }    @Override    public void sing() {        star.sing();    }    @Override    public void collect() {        System.out.println("ProxyStar.collect()");    }}

测试

package com.imust.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.collect();    }}
原创粉丝点击