GOF23的一些总结(六)

来源:互联网 发布:淘宝诈骗 济宁 编辑:程序博客网 时间:2024/05/14 12:53

代理模式核心:代理核心类重复干得事情,核心功能还是由真身类来实现。为了提高数据访问的安全性和提高真身的事情处理专业程度。
代理模式的类与类的关系
这里写图片描述
功能接口

package com.dasenlin.baidu;/** * star所具有的功能 * @author Administrator * */public interface Star {    void confir();    void signContract();    void bookTicket();    void sing();    void collectMoney();}

真身的功能

package com.dasenlin.baidu;public class RealStar implements Star {    @Override    public void confir() {        System.out.println("RealStar.confir");    }    @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("本人真正sing");    }    @Override    public void collectMoney() {        System.out.println("RealStar.collectMoney");    }}

代理类所具有的功能、

package com.dasenlin.baidu;public class ProxyStar implements Star {    private Star star;    public ProxyStar(Star star) {            super();            this.star = star;        }    @Override    public void confir() {        System.out.println("RealStar.confir");    }    @Override    public void signContract() {        System.out.println("RealStar.signContract");    }    @Override    public void bookTicket() {        System.out.println("RealStar.bookTicket");    }    @Override    public void sing() {        star.sing();//不能调用他的隔    }    @Override    public void collectMoney() {        System.out.println("RealStar.collectMoney");    }}

调用方式

package com.dasenlin.baidu;public class Client {    /**     * @param args     */    public static void main(String[] args) {        Star s =new RealStar();        Star st = new ProxyStar(s);        st.sing();    }}
0 0
原创粉丝点击