Командный режим - самая запутанная схема. в вашем реальном программировании. Командный режим на самом деле не очень специфическая модель, и именно такая гибкость заставляет людей чувствовать себя немного запутанными.
Определение команды
Многие командные коды представлены на графическом интерфейсе.
Инкапсулируйте эти команды в класс, а затем пользователь (абонент) работает в этом классе. ..
Очевидно, что это выгода от этого заключается в том, что он соответствует характеристикам упаковки и уменьшает команду связи.
Из командного режима я также обнаружил, что «общая проблема» режима дизайна: мне, кажется, нравится усложнять простые проблемы и люблю добавлять третьих лиц в разные классы. Повторное использование кода.
Как использовать командный режим
Конкретные коды командных режимов различны, потому что существуют разные способы инкапсуляции команд, различные системы. Следующий пример заключается в том, чтобы инкапсулировать команду в список сбора.
Типичный командный режим требует интерфейса. В интерфейсе существует унифицированный метод, который «инкапсулирует команды/запросы в объекты»:
Кода -копия выглядит следующим образом:
Команда публичного интерфейса {
Public Abstract void Execute ();
}
Конкретные коды команды/запросов предназначены для реализации команды интерфейса, а ниже есть три конкретные команды:
Кода -копия выглядит следующим образом:
Инженер открытого класса реализует команду {
public void execute () {
// Сделай команду инженера
}
}
Public Class Programmer реализует команду {
public void execute () {
// выполняйте команду программиста
}
}
Политик публичного класса реализует команду {
public void execute () {
// Сделать командование политика
}
}
Как обычно, мы можем позвонить в эти три команды напрямую, но, используя командный режим, мы должны инкапсулировать их и бросить в список Black Box:
Кода -копия выглядит следующим образом:
продюсер публичного класса {
Public Static List ProductionEquests () {
Список queue = new ArrayList ();
queue.add (new HomeNicengineer ());
queue.add (новый политик ());
queue.add (new Programmer ());
вернуть очередь;
}
}
После того, как эти три команды входят в список, они потеряли свои характеристики.
Кода -копия выглядит следующим образом:
открытый класс testCommand {
public static void main (string [] args) {
Список Queue = Produce.ProduceRequests ();
для (итератор It = queue.iterator (); it.hasnext ();)
// Установите средние и другие функции списка, и вы не можете определить его.
// Они являются по крайней мере «сын» команды интерфейса.
((Команда) it.next ()). Execute ();
}
}
Можно видеть, что вызывающий абонент в основном имеет дело только с интерфейсом и не взаимодействует с конкретной реализацией. не нужно изменять код в TestCommand Caller.
Понимая основной принцип приведенного выше кода, каждый должен использовать свои собственные методы, особенно в том, как отделить вызывающего абонента и конкретные команды, существует много методов реализации. Полем Этот подход только для демонстрации.
Хорошая причина использования командного режима также заключается в том, что он может реализовать функциональность отмены, и каждая конкретная команда может запомнить только действие, которое он только что выполнил, и восстановить его, если это необходимо.
Командный режим широко используется в дизайне интерфейса. Команды меню в командном режиме Java Swing.