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

Adapter

Adapter - паттерн, позволяющий преобразовать интерфейс объекта к тому, который требует клиент. Для этого создается объект посредник, делегирующий вызовы имеющемуся объекту. Вызов метода посредника делает один или несколько вызовов методов реального объекта (возможно, обрабатывая данные и приводя их к другому формату). Это нужно, например, при использовании библиотек объектов, в которых вас устраивает поведение, но не подходит интерфейс.

        namespace Adapter_DesignPattern
        {
            using System;

            class FrameworkXTarget 
            {
                virtual public void SomeRequest(int x)
                {
                }
            }

            class FrameworkYAdaptee
            {
                public void QuiteADifferentRequest(string str) 
                {
                    Console.WriteLine("FrameworkYAdaptee:QuiteADifferentRequest = {0}", str);
                }       
            }

            class OurAdapter : FrameworkXTarget
            {
                private FrameworkYAdaptee adaptee = new FrameworkYAdaptee();
                override public void SomeRequest(int a)
                {
                    string b;
                    b = a.ToString();
                    adaptee.QuiteADifferentRequest(b);
                }       
            }

            public class Client
            {
                void GenericClientCode(FrameworkXTarget x)
                {
                    x.SomeRequest(4);
                }
                
                public static int Main(string[] args)
                {
                    Client c = new Client();
                    FrameworkXTarget x = new OurAdapter();
                    c.GenericClientCode(x); 
                    return 0;
                }
            }
        }
        

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

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