Patterns in SOME –Facade

Code in C#:
 
namespace Facade_DesignPattern
{
     using System;
 
     class SubSystem_class1
     {
         public void OperationX()
         {
              Console.WriteLine("SubSystem_class1.OperationX called");
         }
     }
 
     class SubSystem_class2
     {
         public void OperationY()
         {
              Console.WriteLine("SubSystem_class2.OperationY called");
         }
     }
 
     class SubSystem_class3
     {
         public void OperationZ()
         {            
              Console.WriteLine("SubSystem_class3.OperationZ called");
         }   
     }
 
     class Facade
     {
         private SubSystem_class1 c1 = new SubSystem_class1();
         private SubSystem_class2 c2 = new SubSystem_class2();
         private SubSystem_class3 c3 = new SubSystem_class3();
 
         public void OperationWrapper()
         {
              Console.WriteLine("The Facade OperationWrapper carries out complex decision-making");
              Console.WriteLine("which in turn results in calls to the subsystem classes");
              c1.OperationX();
              if (1==1 /*some really complex decision*/)
              {
                   c2.OperationY();
              }
              // lots of complex code here . . .
              c3.OperationZ();
         }
        
     }
 
     ///<summary>
     ///    Summary description for Client.
     ///</summary>
     public class Client
     {
         public static int Main(string[] args)
         {
              Facade facade = new Facade();
              Console.WriteLine("Client calls the Facade OperationWrapper");
              facade.OperationWrapper();     
              return 0;
         }
     }
}
Code in SOME:
  
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();
       };
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值