设计模式之代理模式
来源:互联网 发布:组织域名后缀含义 编辑:程序博客网 时间:2024/05/21 20:30
举例介绍代理模式。
话说今天白色情人节,小苏喜欢的妹子小曼远在北京,而小苏在上海,要在今天这个特殊的日子里送她一束花,如何送呢?只能是联系北京的花店,预订一束花,让花店帮忙送给心爱的小曼。
小曼收到花,是小苏送的,而完成送花的过程,则是花店代理。在这里,花店是代理者,小苏则是被代理对象。小苏要做的只是挑选一束鲜花,告诉花店地址,付给花店费用,然后花店就会将花送到小曼手中。整个过程完成的效果则是,小苏送了小曼一束花,小曼很开心。
小苏要送花,花店可以将花送到小曼手中,小苏和花店均实现了送花的接口。
public interface SendFlower {public void sendFlower(String girl);}花店:
public class FlowerShop implements SendFlower {/* * 此方法只是为了模拟现实 */public void postAddress(String info) {System.out.println("已收到收花人信息:" + info + "。");}/* * 此方法只是为了模拟现实 */public void pay(int cash) {System.out.println("已收到服务费用¥" + cash + "。");}/* * 代理方法 * @see com.sj.pattern.proxy.SendFlower#sendFlower(java.lang.String) */@Overridepublic void sendFlower(String girl) {System.out.println("已将花送达,收花人:" + girl + "。");}}小苏:
public class XiaoSu implements SendFlower {private FlowerShop flowerShop = new FlowerShop();@Overridepublic void sendFlower(String girl) {flowerShop.postAddress("北京市朝阳区三里屯,小曼,电话:185****0624");flowerShop.pay(260);flowerShop.sendFlower(girl);}}
小苏送花给小曼:
public class Main {public static void main(String[] args) {XiaoSu gentleMan = new XiaoSu();gentleMan.sendFlower("小曼");}}输出:
已收到收花人信息:北京市朝阳区三里屯,小曼,电话:185****0624。已收到服务费用¥260。已将花送达,收花人:小曼。
代理模式:被代理对象的具体操作是由代理对象来完成的。也就是被代理对象要完成的动作它自己不能直接来完成,比如人在上海,要给北京的姑娘送花,就交给北京的花店,也就是代理对象来完成。
适配器模式:主要用于需要做兼容性处理的场合,比如欧标的插头是不能直接插在国标的插板上的,这时有一个转换器,可以让欧标的插头间接的插在国标的插板上。
0 0
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之-代理模式
- 设计模式之 代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之-----代理模式
- 设计模式之代理模式
- 设计模式之-代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 开通博客第一天!!!
- 【bzoj2437】【NOI2011】【兔兔与蛋蛋】【二分图博弈】
- 在windows server 2008 64位服务器上配置php环境
- UIView的Touch事件UIControlEvents详解
- 【转】github设置添加SSH
- 设计模式之代理模式
- MyEclipse/Eclipse调背景色、代码配色、突出当前行、显示行数、放大字号方法总结
- lvs持久连接及防火墙标记实现多端口绑定服务
- AlphaGo实现论文阅读笔记一
- GIS 中地理坐标和屏幕坐标的标准转换方法
- 机器学习:序列模式挖掘算法
- java : 普通代码块,构造代码块,静态代码块区别及代码示例
- C小加 之 级数求和
- 快速排序