Не совсем плевать, обычно паттерн реализуется таким образом, что объект команды имеет общий базовый класс/интерфейс. Конечно можно сделать и строку через switch, но это уже такое себе.
Нажмите, чтобы раскрыть...
Я вроде так и имел ввиду.
То есть:
Есть базовый интерфейс ЯКоманда
У него есть реализаторы-наследники: конкретные команды.
Но Инвокер в качестве входного значения имеет не тип конкретной команды, а тип интерфейса ЯКоманда, поэтому принимает и исполняет любую команду, причём все -- одинаково: КонкретнаяКоманда.Исполнить
В этом смысле ему плевать. Команда может быть любой, пока она реализует
Интерфейс ЯКоманда{
процедура Исполнить()
}
Если это всё так, то у меня вопрос:
А что, если мне нужно сделать команду, которая зависит от входа? Ну, что-то вроде
команда НапечататьСообщение(строка СообщениеДляПечати)
?
Ведь в интерфейсе нет никаких входных данных
Здесь неплохо поясняется, когда паттерны подучивал стабильно этот сайт посещал.
Нажмите, чтобы раскрыть...
Спасибо, хороший сайт. Правда, я его уже читал. Из него я понял больше всего, но не увверен, что до конца, поэтому решил уточнить здесь