• 设计模式06 代理模式


    代理模式(Proxy)定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。

    代理模式的优点有:

    1、代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;

    2、代理对象可以扩展目标对象的功能;

    3、代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度。

    目标对象(被代理的对象):

     1 public interface Subject {
     2     public void Request();
     3 }
     4 
     5 public class RealSubject implements Subject {
     6     @Override
     7     public void Request() {
     8         // TODO Auto-generated method stub
     9         System.out.println("原生实现");
    10     }
    11 }

    代理对象:

     1 public class Proxy implements Subject {
     2     private RealSubject realsubject = new RealSubject();
     3 
     4     public Proxy() {
     5         if (realsubject == null) {
     6             realsubject = new RealSubject();
     7         }
     8     }
     9 
    10     @Override
    11     public void Request() {
    12         // TODO Auto-generated method stub
    13         PreRequest();
    14         realsubject.Request();
    15         PostRequest();
    16     }
    17 
    18     public void PreRequest() {
    19         System.out.println("预处理");
    20     }
    21 
    22     public void PostRequest() {
    23         System.out.println("后处理");
    24     }
    25 }

    调用方式:

    1 public class Client {
    2     public static void main(String[] args) {
    3         // TODO Auto-generated method stub
    4         Subject proxy = new Proxy();
    5         proxy.Request();
    6     }
    7 }

    执行结果:

    Java的Spring框架的AOP(面向切面编程)就是使用这种设计模式实现的。

  • 相关阅读:
    mui 百度语音识别转换文字
    jquery插件导出word:jquery.wordexport.js
    python 3.x 爬虫基础---正则表达式
    python 3.x 爬虫基础---Requersts,BeautifulSoup4(bs4)
    python 3.x 爬虫基础---Urllib详解
    python 3.x 爬虫基础---http headers详解
    python 爬虫入门案例----爬取某站上海租房图片
    python 3.x 与2.x的区别
    基础拾遗----RabbitMQ
    基础拾遗-----mongoDB操作
  • 原文地址:https://www.cnblogs.com/asenyang/p/12111033.html
Copyright © 2020-2023  润新知