Я знаю, как реализовать шаблон Command Design следующим образом:Реализация паттерна Command Design с статические методы C#
public abstract class Command
{
public abstract void Execute(string someString);
}
Say I унаследовать это, как пример:
public class ConnectionCommand : Command
{
public override void Execute(string connectionString)
{
...do some stuff here...;
}
}
Проблема заключается в используйте этот ConnectionCommand Мне нужно сначала создать экземпляр объекта, но команды являются свободными от контекста, поэтому я бы предпочёл не создавать экземпляр ничего для запуска метода Execute ConnectionCommand. (P.S. ConnectionCommand.Execute() будет запущен из события в делегате).
Как бы я воссоздал этот шаблон дизайна, но позволил статическим вызовам методов?
Что здесь означает «контекстно-свободный»? –
Они не требуют конкретной информации о экземпляре для выполнения. Они просто вызваны из любого другого класса, и они делают что-то, не требуя ничего знать о классе, который их называет. Может использоваться как статический метод. –
Кажется, что у вас есть абсорбирующая абстракция: ваш абстрактный класс имеет параметр 'string connectionString', который уже подразумевает какую-то команду соединения. – Philippe