设计模型之代理模型

代理模式:

案例:静态代购模式

/**
 * 购买者
 */
public class Buyer implements BuyMac {
    private String name;
    public Buyer(String name) {
        this.name = name;
    }
    @Override
    public void buyMac(String mac) {
        System.out.println(this.name + "得到了一台" + mac);
    }
}
/**
 * 代购的规范
 */
public interface BuyMac {
    void buyMac(String mac);
}
/**
 * 代理模式:
 *      代理,需要执行某些任务的时候,自己不去,找一些人帮助我去实现。
 * 案例:
 *      代购:小明、小美、小娟知道老王要出国,想让老王代购苹果电脑。
 */
public class Program {
    public static void main(String[] args) {
        // 实例化几个人
        Buyer xiaoming = new Buyer("xiaoming");
        Buyer xiaomei = new Buyer("xiaomei");
        Buyer xiaojuan = new Buyer("xiaojuan");

        // 实例化一个代理对象
        Proxy laowang = new Proxy("laowang", xiaoming, xiaomei, xiaojuan);

        // 让代理去买东西
        laowang.buyMac("MacBook Pro");
    }
}
/**
 * 代购者
 */
public class Proxy implements BuyMac {
    private String name;
    BuyMac[] buyers;        // 所有需要代购的人
    public Proxy(String name, BuyMac... buyers) {
        this.name = name;
        this.buyers = buyers;
    }

    @Override
    public void buyMac(String mac) {
        System.out.println("代购员: " + this.name + "走进了Apple Store");
        // 代购的过程
        for (BuyMac buyer : this.buyers) {
            // 为每一个代购者购买产品
            buyer.buyMac(mac);
        }
        System.out.println("代购员: " + this.name + "走出了Apple Store");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值