dotSITE
Учебник по C# Шаблоны проектирования Work in Murano Software.
новости материалы решения форумы группы настройки/о проекте

Facade

Facade - паттерн, позволяющий скрыть сложность системы путем сведения всех возможных внешних вызовов к одному объекту, делигирующему их соответствующим объектам системы.

        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 /* сложное условие */)
                    {
                        c2.OperationY();
                    }
                    // Большой куслк сложного кода
                    c3.OperationZ();
                }
                
            }

            public class Client
            {
                public static int Main(string[] args)
                {
                    Facade facade = new Facade();
                    Console.WriteLine("Client calls the Facade OperationWrapper");
                    facade.OperationWrapper();      
                    return 0;
                }
            }
        }
        

Back
Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development