zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    mysql中事务隔离级别可重复读说明
    Zookeeper安装与启动
    PHP闭包之bind和bindTo
    使用WebPack打包
    用Python下载momentum中的精美壁纸
    supervisor使用
    Shell脚本:RedisKey批量删除
    使用Certbot配置站点的https
    PHPfmt代码格式化
    创建用私钥签名的证书
  • 原文地址:https://www.cnblogs.com/usaddew/p/10939448.html
Copyright © 2011-2022 走看看