Patterns in SOME –Facade

    技术2022-05-11  86

    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();        }; }

    最新回复(0)