A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小麦芽 中级黑马   /  2017-4-6 16:04  /  429 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

因为这个模式比较简单,也是我们以后用到的模式,提前讲解一下

代理设计模式是结构型设计模式,这个模式可以为其他对象提供一种代理,以控制对这个对象的访问
所谓代理,是指具有与代理源(被代理的对象),具有相同接口的类,客户端必须通过代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。

//------------书店接口---------------------------
public interface Store {
        public  void sailBook();
}

//----------------具体的书店----------------------------------
public class RealStore implements Store {

        public void sailBook() {
                System.out.println("卖书");
        }
}

//----------------代理商--------------------------------
public class ProxyStore implements Store{
        private RealStore realSubject;

        public void sailBook() {
                dazhe();
                if(realSubject == null) {
                        realSubject = new RealStore();
                }
                realSubject.sailBook();
                give();
        }
       
        public void dazhe() {
                System.out.println("打折");
        }
       
        public void give() {
                System.out.println("赠送代金券");
        }
}

//--------------------测试类-------------------------------------------
public class MainClass {
        public static void main(String[] args) {
                ProxyStore proxySubject = new ProxyStore();
                proxySubject.sailBook();
        }
}

是不是很easy,有什么问题可以给我留言!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马