4,代理模式

作者: Kenny丶Mo | 来源:发表于2017-09-23 16:55 被阅读6次

1。定义

代理模式:为其他对象提供一种代理以控制对这个对象的访问

2,UML图

代理模式UML图

3,代理模式基本代码

namespace ProxyMode
{
    public abstract class Subject
    {
        public abstract void Request();
    }

    public class RealSubject : Subject
    {
        public override void Request()
        {
            Debug.Log("RealSubject  Behaviour");
        }
    }

    public class Proxy : Subject
    {
        private RealSubject RealSubject;

        public Proxy()
        {
            RealSubject = new RealSubject();
        }

        public override void Request()
        {
            if (RealSubject == null)
                RealSubject = new RealSubject();

            RealSubject.Request();
        }
    }
}

4,代理模式的简单的应用

namespace ProxyMosdeExample
{
    interface IGiveGift
    {
        void GiveChoco();
        void GiveFlower();
        void GiveOther();
    }

    public class Pursuit : IGiveGift
    {
        private SchoolGirl SchoolGirl;
        public Pursuit(SchoolGirl schoolGirl)
        {
            this.SchoolGirl = schoolGirl;
        }

        public void GiveChoco()
        {
          
        }

        public void GiveFlower()
        {
        }

        public void GiveOther()
        {
        }
    }

    public class Proxy : IGiveGift
    {
        private Pursuit Pursuit;
        public Proxy(SchoolGirl schoolGirl)
        {
            Pursuit = new Pursuit(schoolGirl);
        }

        public void GiveChoco()
        {
            Pursuit.GiveChoco();
        }

        public void GiveFlower()
        {
            Pursuit.GiveFlower();
        }

        public void GiveOther()
        {
            Pursuit.GiveOther();
        }
    }


    public class SchoolGirl
    {
        public string Name;
    }
}

// 使用
  private void Start()
    {
        SchoolGirl schoolGirl = new SchoolGirl()
        {
            Name = "lili"
        };

        Proxy proxy = new Proxy(schoolGirl);
        proxy.GiveOther();
        proxy.GiveFlower();
        proxy.GiveChoco();
    }

5,关于代理模式的思考

应用的场景

1,远程代理,为一个对象在不同的地址空间提供局部代表,可以隐藏一个对象存在于不同的地址空间的事实
2,虚拟代理,根据需要创建开销很大的对象,通过它来存放需要实例化很长时间的对象
3,安全代理,用来控制真实对象的访问权限
4,智能索引,当调用真实的对象时,代理处理另外一些事

代理是在访问对象的时候,具有一定的间接性,代理其实就是真实对象的一种代表

相关文章

  • 设计模式

    1.代理模式 静态代理; 动态代理: 2.工厂模式 3.装饰模式 4.观察者模式

  • Java动态代理解析

    动态代理原理解析 一. 代理模式例子: 目标类及代理类统一接口 目标实现类 自定义的代理模式处理程序 4.代理模式...

  • 4,代理模式

    1。定义 代理模式:为其他对象提供一种代理以控制对这个对象的访问 2,UML图 3,代理模式基本代码 4,代理模式...

  • 代理模式vs装饰模式 and 静态代理vs动态代理

    目录:1.代理模式定义&实现2.装饰模式定义&实现3.静态代理4.动态代理:JDK动态代理、Cglib动态代理5....

  • 四、结构性模型

    1.代理模式2.装饰模式3.外观模式4.适配器模式 1.代理模式 让类和类进行组合,获得更大的结构 代理模式(Pr...

  • spring框架中的设计模式二

    在这篇文章中,介绍4种设计模式。结构型设计模式:代理和复合模式。行为型设计模式:策略和模板方法模式。 代理模式 面...

  • 4、代理模式

    1.概述 因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象, 你曾有过延迟创建对象的想法吗 (...

  • 4、设计模式----代理模式

    代理模式,为其他对象提供一种代理以控制对这个对象的访问。 应用场景: 1.远程代理,也就是为一个对象在不同的地...

  • 设计模式(4)-代理模式

    代理模式(Proxy)是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审...

  • 听说有人面试被问了设计模式?跟我学,结合Mybatis源码去回答

    1、Builder模式 2、工厂模式 3、单例模式 4、代理模式 5、组合模式 6、模板方法模式 7、适配器模式 ...

网友评论

    本文标题:4,代理模式

    本文链接:https://www.haomeiwen.com/subject/mxkcextx.html