标签:
1.定义
Provide a surrogate(代理) or placeholder for another object to control access to it(为其他对象提供一种代理以控制对这个对象的访问)
2.模式说明
.Subject抽象主题角色
抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求。
.RealSubject具体主题角色
也叫做被委托角色、被代理角色。是业务逻辑的具体执行者。
.Proxy代理主题角色
也叫做委托类、代理类。它负责对真实角色的引用,并且在真实主题角色处理完毕前后做预处理和善后处理工作。
public interface ISubject { void Request(); } public class ConcreteSubject : ISubject { public void Request() { Console.WriteLine("处理具体业务"); } } public class Proxy : ISubject { private readonly ISubject _subject; public Proxy(ISubject subject) { _subject = subject; } public void Request() { _subject.Request(); }
//预处理
private void Before()
{}
//后续处理
private void After()
{} }
/// <summary> /// 场景类 /// </summary> class Program { private static void Main(string[] args) { Proxy p = new Proxy(new ConcreteSubject()); p.Request(); Console.ReadKey(); } }
3.代理模式的使用场景
打官司为什么要找个律师?因为你不想参与中间过程的是是非非,只要完成自己的答辩就成。其他的比如事前调查、事后追查都由律师来搞定,这样就可以减轻自己的负担。
标签:
原文地址:http://www.cnblogs.com/JustYong/p/4589336.html