Patterns in SOME –Facade
2007-03-01 14:58
363 查看
[align=left]Code in C#:[/align]
[align=left] [/align]
[align=left]namespace Facade_DesignPattern[/align]
[align=left]{[/align]
[align=left] using System;[/align]
[align=left] [/align]
[align=left] class SubSystem_class1 [/align]
[align=left] {[/align]
[align=left] public void OperationX() [/align]
[align=left] {[/align]
[align=left] Console.WriteLine("SubSystem_class1.OperationX called");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class SubSystem_class2[/align]
[align=left] {[/align]
[align=left] public void OperationY()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("SubSystem_class2.OperationY called");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class SubSystem_class3 [/align]
[align=left] {[/align]
[align=left] public void OperationZ()[/align]
[align=left] { [/align]
[align=left] Console.WriteLine("SubSystem_class3.OperationZ called");[/align]
[align=left] } [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class Facade [/align]
[align=left] {[/align]
[align=left] private SubSystem_class1 c1 = new SubSystem_class1();[/align]
[align=left] private SubSystem_class2 c2 = new SubSystem_class2();[/align]
[align=left] private SubSystem_class3 c3 = new SubSystem_class3();[/align]
[align=left] [/align]
[align=left] public void OperationWrapper()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("The Facade OperationWrapper carries out complex decision-making");[/align]
[align=left] Console.WriteLine("which in turn results in calls to the subsystem classes");[/align]
[align=left] c1.OperationX();[/align]
[align=left] if (1==1 /*some really complex decision*/)[/align]
[align=left] {[/align]
[align=left] c2.OperationY();[/align]
[align=left] }[/align]
[align=left] // lots of complex code here . . .[/align]
[align=left] c3.OperationZ();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Summary description for Client.[/align]
[align=left] ///</summary>[/align]
[align=left] public class Client[/align]
[align=left] {[/align]
[align=left] public static int Main(string[] args)[/align]
[align=left] {[/align]
[align=left] Facade facade = new Facade();[/align]
[align=left] Console.WriteLine("Client calls the Facade OperationWrapper");[/align]
[align=left] facade.OperationWrapper(); [/align]
[align=left] return 0;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]Code in SOME:[/align]
CSubSystem_class1
OperationX()
CSubSystem_class2
OperationY()
CSubSystem_class3
OperationZ()
CFacade ->CSubSystem_class1[_c1.()],->CSubSystem_class2[_c2.()],->CSubSystem_class3[_c3.()]
OperationWrapper()
CClient
main
CClient.main
{
CFacade facade.();
facade.OperationWrapper()
{
_c1.OperationX();
<%if (1==1 /*some really complex decision*/)%>
<%{%>
_c2.OperationY();
<%}%>
_c3.OperationZ();
};
}
[align=left] [/align]
[align=left]namespace Facade_DesignPattern[/align]
[align=left]{[/align]
[align=left] using System;[/align]
[align=left] [/align]
[align=left] class SubSystem_class1 [/align]
[align=left] {[/align]
[align=left] public void OperationX() [/align]
[align=left] {[/align]
[align=left] Console.WriteLine("SubSystem_class1.OperationX called");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class SubSystem_class2[/align]
[align=left] {[/align]
[align=left] public void OperationY()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("SubSystem_class2.OperationY called");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class SubSystem_class3 [/align]
[align=left] {[/align]
[align=left] public void OperationZ()[/align]
[align=left] { [/align]
[align=left] Console.WriteLine("SubSystem_class3.OperationZ called");[/align]
[align=left] } [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class Facade [/align]
[align=left] {[/align]
[align=left] private SubSystem_class1 c1 = new SubSystem_class1();[/align]
[align=left] private SubSystem_class2 c2 = new SubSystem_class2();[/align]
[align=left] private SubSystem_class3 c3 = new SubSystem_class3();[/align]
[align=left] [/align]
[align=left] public void OperationWrapper()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("The Facade OperationWrapper carries out complex decision-making");[/align]
[align=left] Console.WriteLine("which in turn results in calls to the subsystem classes");[/align]
[align=left] c1.OperationX();[/align]
[align=left] if (1==1 /*some really complex decision*/)[/align]
[align=left] {[/align]
[align=left] c2.OperationY();[/align]
[align=left] }[/align]
[align=left] // lots of complex code here . . .[/align]
[align=left] c3.OperationZ();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Summary description for Client.[/align]
[align=left] ///</summary>[/align]
[align=left] public class Client[/align]
[align=left] {[/align]
[align=left] public static int Main(string[] args)[/align]
[align=left] {[/align]
[align=left] Facade facade = new Facade();[/align]
[align=left] Console.WriteLine("Client calls the Facade OperationWrapper");[/align]
[align=left] facade.OperationWrapper(); [/align]
[align=left] return 0;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]Code in SOME:[/align]
CSubSystem_class1
OperationX()
CSubSystem_class2
OperationY()
CSubSystem_class3
OperationZ()
CFacade ->CSubSystem_class1[_c1.()],->CSubSystem_class2[_c2.()],->CSubSystem_class3[_c3.()]
OperationWrapper()
CClient
main
CClient.main
{
CFacade facade.();
facade.OperationWrapper()
{
_c1.OperationX();
<%if (1==1 /*some really complex decision*/)%>
<%{%>
_c2.OperationY();
<%}%>
_c3.OperationZ();
};
}
相关文章推荐
- Patterns in SOME –Observer
- Patterns in SOME –Proxy
- Patterns in SOME –Builder
- The Design Patterns Used in PetStore 1. Facade
- Patterns in SOME –Memento
- Patterns in SOME –Flyweight
- Patterns in SOME –Abstract Factory
- Patterns in SOME –Mediator
- Patterns in SOME –Decorator
- Patterns in SOME –Factory Method
- Patterns in SOME –Iterator
- Patterns in SOME –Composite
- Patterns in SOME – Command
- Patterns in SOME –Bridge
- Patterns in SOME - Visitor
- Patterns in SOME –Chain Of Responsibility
- Patterns in SOME –Adapter (class)
- Patterns in SOME - Strategy
- Patterns in SOME –Template Method
- Patterns in SOME –Singleton