代理模式
在面向对象系统中,有些对象由于某种原因(比如对象创建开销很大,或者某些操作需要安全
控制,或者需要进程外的访问等),直接访问会给使用者带来麻烦。解决方式增加一层间接层.
原始
public abstract class Subject
{
public abstract void Request();
}
继承
public class RealSubject :TestSecond.Subject
{
public override void Request()
{
Console.WriteLine("Called RealSubject.Request()");
}
}
代理
public class Proxy : TestSecond.Subject
{
TestClass.RealSubject real = null;
public override void Request()
{
if (real == null)
{
real = new TestClass.RealSubject();
}
real.Request();
}
}
客户端,要分别引用Subject类的DLL和Proxy类的DLL
在面向对象系统中,有些对象由于某种原因(比如对象创建开销很大,或者某些操作需要安全
控制,或者需要进程外的访问等),直接访问会给使用者带来麻烦。解决方式增加一层间接层.
原始
public abstract class Subject
{
public abstract void Request();
}
继承
public class RealSubject :TestSecond.Subject
{
public override void Request()
{
Console.WriteLine("Called RealSubject.Request()");
}
}
代理
public class Proxy : TestSecond.Subject
{
TestClass.RealSubject real = null;
public override void Request()
{
if (real == null)
{
real = new TestClass.RealSubject();
}
real.Request();
}
}
客户端,要分别引用Subject类的DLL和Proxy类的DLL
浙公网安备 33010602011771号