Matlab代理模式

代理模式(Proxy)就是给一个对象提供一个代理对象,并有代理对象来控制对原有对象的引用。代理模式和装饰模式非常类似,但最主要的区别是代理模式中,代理类对被代理的对象有控制权,决定其执行或者不执行。本文根据https://www.cnblogs.com/gonjan-blog/p/6685611.html给出的结构图,使用Matlab语言实现代理代理模式。

Subject.m

classdef Subject
    methods(Abstract)
        request(~);
    end
end

RealSubject.m

classdef RealSubject < Subject
    methods
        function request(obj)
            mc = metaclass(obj);
            disp(mc.Name + ":request");
        end
    end
end

Proxy.m

classdef Proxy < Subject
    properties
        sub
    end
    methods
        function obj = Proxy(sub)
            obj.sub = sub;
        end
        function request(obj)
            if(randi([0,1]))
                obj.before();
                obj.sub.request();
                obj.after();
            else
                mc = metaclass(obj);
                disp(mc.Name + ":no request");
            end
        end
        function before(obj)
            mc = metaclass(obj);
            disp(mc.Name + ":start request");
        end
        function after(obj)
            mc = metaclass(obj);
            disp(mc.Name + ":end request");
        end
    end
end

test.m

a = RealSubject();
a.request();

b = Proxy(a);
b.request();
(0)

相关推荐

  • Matlab混入模式(Mixin)

    Mixin是一种类,这种类包含了其他类要使用的特性方法,但不必充当其他类的父类.Matlab无疑是支持多继承的.我们可以利用 Matlab 的这种特性,实现一种叫做 Mixin 的类.MixIn的目的 ...

  • 设计模式之代理模式(proxy pattern)

    代理模式的本质是一个中间件,主要目的是解耦合服务提供者和使用者.使用者通过代理间接的访问服务提供者,便于后者的封装和控制.是一种结构性模式. 1.目的 为外部调用者提供一个访问服务提供者的代理对象. ...

  • 设计模式(十三)——代理模式

    设计模式(十三)——代理模式

  • 代理模式

    为什么要学习代理模式?因为这就是Spring AOP的底层机制![Spring AOP 和 Spring MVC] 1.什么是代理模式 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.在 ...

  • PHP设计模式之代理模式

    PHP设计模式之代理模式 代理人这个职业在中国有另外一个称呼,房产经济人.保险经济人,其实这个职业在国外都是叫做房产代理或者保险代理.顾名思义,就是由他们来帮我们处理这些对我们大部分人来说都比较生疏的 ...

  • [PHP小课堂]PHP设计模式之代理模式

    [PHP小课堂]PHP设计模式之代理模式 关注公众号:[硬核项目经理]获取最新文章 添加微信/QQ好友:[DarkMatterZyCoder/149844827]免费得PHP.项目管理学习资料

  • 如何运用EDIUS代理模式

    当我们导入高清的长视频到EDIUS中时,播放就会出现卡顿的现象,播放速度就会变慢,这样就给后期剪辑工作带来了一些麻烦,这时候我们就会想办法解决这个问.其实,在EDIUS视频编辑软件中代理模式就可以很好 ...

  • 特斯拉直营模式能否持续?一文读懂直营、授权、代理模式前世今生|4s店|上海大众

    2021-04-27 19:15:18 来源: 电车人 2021年3月27-28日,电车人学院"雄鹰计划"总裁班(黄埔二期)第4次课·市场与产品专题在北京万集科技举办,来自整车.核 ...

  • 小米之家疯狂扩张千店同开,直营模式PK友商代理模式,谁会赢?

    2020年小米交出了满意的业绩,小米10出货量超500万台,成为继华为之后又一个开始站稳高端市场的中国厂商.小米在经历了三年的起伏之后,2020年终于开始发力,在线上小米重新拿回市场份额第一,线下小米 ...

  • 结构型模式之代理模式

    在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象. 定义与特点 由于某些原因需要给某对象提供一个代理以控制对该对象的访问.这时,访问对象不 ...

  • 无废话设计模式(11)结构型模式--代理模式

    0-前言 代理模式定义:为其他对象提供一种代理以控制对这个对象的访问. 1-实现 1-1.简单UML图: 1-2.代码实现 //1.抽象父类 abstract class Actor { public ...