设计模式学习笔记之代理模式
定义:代理模式(Proxy Pattern)对其他对象提供一种代理以控制对这个对象的访问。
看着有点迷糊,直接来个简单的例子。照例以猫狗为例。
例如:
// 动物类
abstract class Animal
{
public abstract void speak();
}// 猫类,继承自动物类
class Cat:Animal
{
public override void speak()
{
Console.WriteLine("喵");
}// 客户端调用 Animal cat = new Cat(); cat.speak();
看着运行结果:
所谓的代理模式,就是客户端访问的时候,不直接用猫类,而是用一个代理猫类,这个代理猫类与猫类要实现同一个接口,同时引用一个猫类,那么这个代理类就完全能够代理真正的猫了。如下:
// 代理猫类,继承自动物类,引用猫类
class ProxCat:Animal
{
private Cat cat;
public override void speak()
{
if (cat == null)
{
cat = new Cat();
}
cat.speak();
}
}// 客户端调用 ProxCat pcat = new ProxCat(); pcat.speak();
看着运行结果,这个代理猫真的代替猫了:
参考资料:
作者:灵动生活

浙公网安备 33010602011771号