C#设计模式:代理模式(Proxy Pattern)

一,什么是C#设计模式?

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

二,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _12.代理模式
{
    class Program
    {
        static void Main(string[] args)
        {
            Event e = new Proxy();
            e.DoSomeThing();
        }
    }
    public interface Event
    {
        void DoSomeThing();
    }
    public class Chinese : Event
    {

        public void DoSomeThing()
        {
            Console.WriteLine("中国人,去买菜");
        }
    }

    public class Proxy : Event
    {
        public Chinese chinese { get; set; }
        public void DoSomeThing()
        {
            if (chinese == null)
            {
                chinese = new Chinese();
            }
            chinese.DoSomeThing();
        }
    }
}

三,如上很简单的代码,本来中国人去买菜,但这时是由代理帮忙买菜了,

代理模式由三部分组成:

抽象角色:通过接口或抽象类声明真实角色实现的业务方法。(如上:Event接口)
代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。(如上:Proxy)
真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。(如上:Chinese)
四,代理模式和装饰者模式的区别:
1》代理模式中,代理类对被代理的对象有控制权,决定其执行或者不执行。而装饰模式中,装饰类对代理对象没有控制权,只能为其增加一层装饰,以加强被装饰对象的功能。
2》代理模式使用到极致开发就是AOP,在百科中AOP的解释:为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术
3》AOP底层,就是采用动态代理模式实现的

转载于:https://www.cnblogs.com/May-day/p/8761605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值