• 设计模式之代理模式


     今天杨哥给小伙伴们讲解设计模式中的代理模式,杨哥讲代理模式,通俗易懂,在杨哥看来其实啊,代理设计模式在我们的生活中处处可见,只是没有注意而已,现在杨哥举一个最简单,最能够回忆,最有情怀的经典例子帮助小伙伴初步理解代理模式,杨哥在上初中的时候呢,杨哥呢有一个很好的同学也是杨哥的哥们,这哥们呢,看上了隔壁班的一个小妹妹,在杨哥看来这小妹妹也确实美若天仙啊,哥们真有眼观,但问题就来了,杨哥的哥们呢,确实比较腼腆,不好意思跟小妹妹说话,尤其这么这么漂亮的小妹妹。

              有一天,找到杨哥我帮他送一封情书给那个妹妹,在杨哥看来哥们的忙一定要帮啊,所以呢,杨哥义不容辞把情书送到了漂亮妹妹的手里,看她乐滋滋的,小妹妹以为这是杨哥送的,当时杨哥也是才貌双全啊,现在看来一脸沧桑啊,这是扯皮啊,杨哥如实交代了帮哥们送的啊,然后来来回回杨哥代送了几回合,他俩就这么度过了一段美好的青春啊,杨哥羡慕至极啊!

              看到没有杨哥其实是在讲代理模式啊,其实真正有需求,真正要做事的是杨哥的哥们,杨哥只是充当代理的作用。好了,先上个图:

    Subject 抽象类定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy代替

    package daili_designmode;

    public abstract class Subject {

     public abstract void Request();

    }

    RealSubject类是真正有需求的类,相当于杨哥的哥们

    package daili_designmode;

    public class RealSubject extends Subject{

    @Override

    public void Request() {

    System.out.println("真实的请求");

    }

    }


    Proxy代理类,也是代表的是杨哥啊

    package daili_designmode;

    public class Proxy extends Subject{

     RealSubject realSubject;

    @Override

    public void Request() {

    if (realSubject == null)

            {

                realSubject = new RealSubject();

            }

            realSubject.Request();

    }

    }

    最后就是程序的入口

    package daili_designmode;

    public class ProxyMain {

    public static void main(String[] args) {

     Proxy proxy = new Proxy();

             proxy.Request();

    }

    }

    顺便上个效果图:

    看到没有是程序入口中只有代理类,其实有好多的设计都使用了代理设计模式思想,比如WebService的原理,还比如小伙伴们要看国外某一个网站上的小妹妹,是不是需要找一个代理服务器呢,也就是所谓的翻墙咯,。

        杨哥说的代理设计模式是不是很简单粗暴,直截了当呢,给杨哥点个赞或评个论啊,杨哥打字好辛苦啊。。。。。

  • 相关阅读:
    leetcode 343. Integer Break(dp或数学推导)
    leetcode 237. Delete Node in a Linked List
    msdtc不可用
    常用反编译软件
    重建索引
    JAVA知识库
    DATAGRID显示序号
    VFLEXGRID8控件注册
    黑马2017年java就业班全套视频教程
    mybatis从入门到精通
  • 原文地址:https://www.cnblogs.com/xinanheishao/p/6978243.html
Copyright © 2020-2023  润新知