Запросить Oracle для запуска sql и значения переменных связывания

Если я запустил SQL на рис. 1 ниже, Декоратор Прикрепите к объекту дополнительные обязанности динамически. Декораторы ...

Прежде чем приступить к описанию моей проблемы, я хотел бы дать определение методов декоратора и расширения. Декоратор

Добавляет дополнительные обязанности к объекту динамически. Декораторы предоставляют гибкую альтернативу созданию подклассов для расширения функциональности

Метод расширения

Методы расширения позволяют вам «добавлять» методы к существующим типам без создания нового производного типа, перекомпиляции или иного изменения исходного типа

У меня есть следующий фрагмент кода в C #

public interface IMyInterface
{
    void Print();
}

public static class Extension
{
    public static void PrintInt(this IMyInterface myInterface, int i)
    {
        Console.WriteLine
            ("Extension.PrintInt(this IMyInterface myInterface, int i)");
    }

    public static void PrintString(this IMyInterface myInterface, string s)
    {
        Console.WriteLine
            ("Extension.PrintString(this IMyInterface myInterface, string s)");
    }
}

public class Imp : IMyInterface
{
    #region IMyInterface Members

    public void Print()
    {
        Console.WriteLine("Imp");
    }

    #endregion
}

class Program
{
    static void Main(string[] args)
    {
        Imp obj = new Imp();
        obj.Print();
        obj.PrintInt(10);
    }
}

В приведенном выше коде я расширяю интерфейс без изменения существующего кода, и эти два метода доступны для производного класса. Итак, мой вопрос: является ли метод расширения заменой шаблона декоратора?

17
задан kmote 16 July 2013 в 21:22
поделиться