设计模式2--代理模式

编程技术  /  houtizong 发布于 3年前   63

代理模式(proxy)白话就是一个人替另外一个人做一些事情。

       代理模式所涉及的角色:

              i)抽象主题角色:声明了真实主题与代理主题的共同接口。

              ii)代理主题角色:包含了真实主题角色的引用,在将客户端的调用传递给真实主题角色之前或者之后调用某些

                                        方法而不是直接把调用传递给真实主题角色。

               iii)真实主题角色:定义了代理主题所代表的真实对象

      例如:

             Subject抽象类:abstract  public class Subject{

                                             abstract  public void request();

                                     }

             RealSubject类: public class RealSubject extends Subject{

                                             public void request(){

                                                    System.out.println("实现请求");

                                             }

                                     }

             ProxySubject类:public class ProxySubject extends Subject{

                                              //对真实主题的引用,用来操作真实主题

                                              private RealSubject realSubject;

                                              //请求前操作

                                              public void preRequest(){

                                                     System.out.println("请求前操作");

                                              }

                                              //请求后操作

                                              public void postRequest(){

                                                     System.out.println("请求后操作");

                                              }

                                              //实现请求方法

                                              public  void  request(){

                                                     preRequest();

                                                     if(realSubject==null){realSubject = new RealSubject();}

                                                     realSubject.request();

                                                     postRequest();

                                              }

                                      }

              客户端调用方式:Subject subject = new ProxySubject();

                                      subject.request();

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客