• 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();
  • 相关阅读:
    CUDA 纹理内存
    CUDA三维数组
    cutil.h问题
    GPU和CPU耗时统计方法
    NVIDIA CUDA Library Documentation
    device not ready cuda
    送给女朋友的礼物
    手机屏幕录制软件分享
    统计函数运行时间-CPU端
    二十四孝,图文并茂,古今必读!
  • 原文地址:https://www.cnblogs.com/usaddew/p/10939448.html
Copyright © 2020-2023  润新知