代理模式
代理模式需要代理和被代理类都实现同一个行为接口.
这样, 代理类就可以持有被代理类, 而不实现任何功能
可以用于做权限控制, 和懒加载等等.
UML
实际代理和被代理的关系应该是关联
UMLClassCode
interface IProxy{
void Action1();
void Action2();
void Action3();
}
class Proxy{
+ IProxy person;
+ void Action1();
+ void Action2();
+ void Action3();
}
class Person{
+ void Action1();
+ void Action2();
+ void Action3();
}
IProxy <|.. Proxy
Person <--o Proxy
IProxy <|.. Person
Code
public static void Main()
{
IProxy proxy = new Proxy(new Person());
proxy.Action1();
proxy.Action2();
proxy.Action3();
Console.Read();
}
interface IProxy
{
void Action1();
void Action2();
void Action3();
}
class Proxy:IProxy
{
public IProxy person;
public Proxy(IProxy person)
{
this.person = person;
}
public void Action1()
{
person.Action1();
}
public void Action2()
{
person.Action2();
}
public void Action3()
{
person.Action3();
}
}
class Person: IProxy
{
public void Action1()
{
Console.WriteLine("Person Action1");
}
public void Action2()
{
Console.WriteLine("Person Action2");
}
public void Action3()
{
Console.WriteLine("Person Action3");
}
}