CSharp设计模式读书笔记(13):代理模式(学习难度:★★★☆☆,使用频率:★★★★☆)

时间:2021-01-21 15:17:20

代理模式:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。

模式角色与结构:

CSharp设计模式读书笔记(13):代理模式(学习难度:★★★☆☆,使用频率:★★★★☆)

示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace CSharp.DesignPattern.ProxyPattern
{
class Program
{
static void Main(string[] args)
{
Subject subject = new RealSubject();
//subject.Request(); subject = new ProxySubject();
subject.Request(); Console.ReadLine();
}
} // 抽象主题角色
abstract class Subject
{
public abstract void Request();
} // 真实主题角色
class RealSubject : Subject
{
public override void Request()
{
// 业务方法具体实现代码
}
} // 代理主题角色
class ProxySubject : Subject
{
private RealSubject realSubject = new RealSubject(); // 维持一个对真实主题对象的引用 public void PreRequest()
{ } public override void Request()
{
PreRequest(); // 预处理
realSubject.Request(); // 调用真实主题对象方法
PostRequest(); // 完成处理
} public void PostRequest()
{ }
}
}