class Client void Main Subject subject new Proxy subject Request abstr

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Client
{
void Main()
{
Subject subject = new Proxy();
subject.Request();
}
}
abstract class Subject
{
public abstract void Request();
}
class RealSubject : Subject
{
public override void Request()
{}
}
class Proxy : Subject
{
RealSubject realSubject;
public override void Request()
{
if (realSubject == null)
realSubject = new RealSubject();
realSubject.Request();
}
}