Если я запустил 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);
}
}
В приведенном выше коде я расширяю интерфейс без изменения существующего кода, и эти два метода доступны для производного класса. Итак, мой вопрос: является ли метод расширения заменой шаблона декоратора?