您的位置:首页 > 其它

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();
};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: