Lisp в ABAP (от 26.06.2015)
Martin Ceronio поделился реализацией интерпретатора LISP на ABAP, подробнее на SCN.
https://abap-blog.ru/others/lisp-v-abap/
Martin Ceronio поделился реализацией интерпретатора LISP на ABAP, подробнее на SCN.
https://abap-blog.ru/others/lisp-v-abap/
abap-blog.ru
ABAP Blog | Lisp в ABAP
Martin Ceronio поделился реализацией интерпретатора LISP на ABAP, подробнее на SCN.
Неявный выход из цикла по таблице (от 02.07.2015)
Когда внутри цикла по таблице вы попытаетесь передать её с передачей по значению для изменения, сработает неявный выход из цикла после вызова процедуры: TYPES: BEGIN OF ty_some_struct, some_value TYPE i, END OF ty_some_struct, ty_table TYPE STANDARD TABLE OF ty_some_struct. DATA: lt_data TYPE ty_table, ls_data TYPE ty_some_struct. ls_data-some_value = 1. APPEND ls_data TO lt_data. ls_data-some_value = 2.…
https://abap-blog.ru/osnovy-abap/neyavnyj-vyxod-iz-cikla-po-tablice/
Когда внутри цикла по таблице вы попытаетесь передать её с передачей по значению для изменения, сработает неявный выход из цикла после вызова процедуры: TYPES: BEGIN OF ty_some_struct, some_value TYPE i, END OF ty_some_struct, ty_table TYPE STANDARD TABLE OF ty_some_struct. DATA: lt_data TYPE ty_table, ls_data TYPE ty_some_struct. ls_data-some_value = 1. APPEND ls_data TO lt_data. ls_data-some_value = 2.…
https://abap-blog.ru/osnovy-abap/neyavnyj-vyxod-iz-cikla-po-tablice/
abap-blog.ru
ABAP Blog | Неявный выход из цикла по таблице
Когда внутри цикла по таблице вы попытаетесь передать её с передачей по значению для изменения, сработает неявный выход из цикла после вызова процедуры: [crayon
Создание подэкрана на экране выбора (от 03.07.2015)
Обычно подэкраны вставляются на экране выбора через создание вкладок по следующему принципу: SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN. PARAMETERS: p1 TYPE c LENGTH 10, p2 TYPE c LENGTH 10, p3 TYPE c LENGTH 10. SELECTION-SCREEN END OF SCREEN 100. SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN. PARAMETERS: q1 TYPE c LENGTH 10, q2 TYPE…
https://abap-blog.ru/osnovy-abap/sap-dynpro/sozdanie-podekrana-na-ekrane-vybora/
Обычно подэкраны вставляются на экране выбора через создание вкладок по следующему принципу: SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN. PARAMETERS: p1 TYPE c LENGTH 10, p2 TYPE c LENGTH 10, p3 TYPE c LENGTH 10. SELECTION-SCREEN END OF SCREEN 100. SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN. PARAMETERS: q1 TYPE c LENGTH 10, q2 TYPE…
https://abap-blog.ru/osnovy-abap/sap-dynpro/sozdanie-podekrana-na-ekrane-vybora/
abap-blog.ru
ABAP Blog | Создание подэкрана на экране выбора
Обычно подэкраны вставляются на экране выбора через создание вкладок по следующему принципу: SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN. PARAMETERS: p1 TYPE c LENGTH 10, p2 TYPE c LENGTH 10, p3 TYPE c LENGTH 10. SELECTION-SCREEN END OF SCREEN 100.…
Слабые ссылки в ABAP (от 07.07.2015)
Понятие слабой ссылки существует в системах и языках программирования, где поддерживается сборка мусора — автоматическое удаление из памяти объектов, использование которых прекратилось и более не будет возобновлено. Далее в статье будет рассмотрена реализация слабых ссылок в ABAP. Для определения объектов, подлежащих сборке мусора, используется тот или иной вариант алгоритма определения достижимости — достижимым считается объект, на который в программе…
https://abap-blog.ru/osnovy-abap/oop/slabye-ssylki-v-abap/
Понятие слабой ссылки существует в системах и языках программирования, где поддерживается сборка мусора — автоматическое удаление из памяти объектов, использование которых прекратилось и более не будет возобновлено. Далее в статье будет рассмотрена реализация слабых ссылок в ABAP. Для определения объектов, подлежащих сборке мусора, используется тот или иной вариант алгоритма определения достижимости — достижимым считается объект, на который в программе…
https://abap-blog.ru/osnovy-abap/oop/slabye-ssylki-v-abap/
abap-blog.ru
ABAP Blog | Слабые ссылки в ABAP
Понятие слабой ссылки существует в системах и языках программирования, где поддерживается сборка мусора — автоматическое удаление из памяти объектов, использование которых прекратилось и более не будет возобновлено. Далее в статье будет рассмотрена реализация…
Работа с GOS контейнером (от 10.07.2015)
Многие из Вас видели в стандартных транзакциях кнопки расположенные в заголовке экрана: Для того чтобы иметь возможность располагать GUI элементы в заголовке есть специальный контейнер называется он cl_gui_gos_container. Пример работы с ним далее. DATA: go_toolbar TYPE REF TO cl_gui_toolbar, go_container TYPE REF TO cl_gui_gos_container, gv_icon TYPE iconname, gv_quick TYPE iconquick, gt_event TYPE cntl_simple_events, gs_event TYPE…
https://abap-blog.ru/osnovy-abap/sap-dynpro/rabota-s-gos-kontejnerom/
Многие из Вас видели в стандартных транзакциях кнопки расположенные в заголовке экрана: Для того чтобы иметь возможность располагать GUI элементы в заголовке есть специальный контейнер называется он cl_gui_gos_container. Пример работы с ним далее. DATA: go_toolbar TYPE REF TO cl_gui_toolbar, go_container TYPE REF TO cl_gui_gos_container, gv_icon TYPE iconname, gv_quick TYPE iconquick, gt_event TYPE cntl_simple_events, gs_event TYPE…
https://abap-blog.ru/osnovy-abap/sap-dynpro/rabota-s-gos-kontejnerom/
abap-blog.ru
ABAP Blog | Работа с GOS контейнером
Многие из Вас видели в стандартных транзакциях кнопки расположенные в заголовке экрана: Для того чтобы иметь возможность располагать GUI элементы в заголовке есть специальный контейнер называется он cl_gui_gos_container. Пример работы с ним далее. DATA: go_toolbar…
Объектные исключения и RFC (от 29.08.2015)
В документации к системе версии 7.30 (sy-saprl) было обнаружено интересное нововведение, возможность обработки RFC исключений в объектном представлении: In the interface of a remote enabled function module, you can either specify class-based exceptions (as of release 7.1, EhP1) or define classic exceptions, that is, non class-based exceptions. Все классические исключения согласно документации транслируются в объектное…
https://abap-blog.ru/osnovy-abap/oop/obektnye-isklyucheniya-i-rfc/
В документации к системе версии 7.30 (sy-saprl) было обнаружено интересное нововведение, возможность обработки RFC исключений в объектном представлении: In the interface of a remote enabled function module, you can either specify class-based exceptions (as of release 7.1, EhP1) or define classic exceptions, that is, non class-based exceptions. Все классические исключения согласно документации транслируются в объектное…
https://abap-blog.ru/osnovy-abap/oop/obektnye-isklyucheniya-i-rfc/
abap-blog.ru
ABAP Blog | Объектные исключения и RFC
В документации к системе версии 7.30 (sy-saprl) было обнаружено интересное нововведение, возможность обработки RFC исключений в объектном представлении: In the
Value Check для связанных параметров (от 05.09.2015)
VALUE CHECK дополнение используется когда необходимо удостоверится в том что значения введенные пользователем для параметра есть либо фиксированных значениях домена, либо если указываем на внешний ключ, они присутствуют в таблице. Однако, когда речь заходит о нескольких параметрах, есть некоторая особенность, которая и будет рассмотрена далее. Рассмотрим пример: PROGRAM zvalue_check_test. PARAMETERS: p_carr TYPE sbook-carrid VALUE CHECK.…
https://abap-blog.ru/osnovy-abap/value-check-dlya-svyazannyx-parametrov/
VALUE CHECK дополнение используется когда необходимо удостоверится в том что значения введенные пользователем для параметра есть либо фиксированных значениях домена, либо если указываем на внешний ключ, они присутствуют в таблице. Однако, когда речь заходит о нескольких параметрах, есть некоторая особенность, которая и будет рассмотрена далее. Рассмотрим пример: PROGRAM zvalue_check_test. PARAMETERS: p_carr TYPE sbook-carrid VALUE CHECK.…
https://abap-blog.ru/osnovy-abap/value-check-dlya-svyazannyx-parametrov/
abap-blog.ru
ABAP Blog | Value Check для связанных параметров
VALUE CHECK дополнение используется когда необходимо удостоверится в том что значения введенные пользователем для параметра есть либо фиксированных значениях домена, либо если указываем на внешний ключ, они присутствуют в таблице. Однако, когда речь заходит…
Динамическое программирование в ABAP (от 17.09.2015)
На днях довелось прослушать курс BC402 в рамках программы «Вечерний ABAP», хочется выразить благодарность компании SAP за такую возможность, а также отметить профессионализм преподавателя, в роли которого выступал Василий Ковальский. Сам курс посвящен обзору довольно обширных тем, которые, так или иначе, пригодятся всем ABAP программистам в их повседневной деятельности. Одной из рассматриваемых тем данного курса…
https://abap-blog.ru/osnovy-abap/dinamicheskoe-programmirovanie-v-abap/
На днях довелось прослушать курс BC402 в рамках программы «Вечерний ABAP», хочется выразить благодарность компании SAP за такую возможность, а также отметить профессионализм преподавателя, в роли которого выступал Василий Ковальский. Сам курс посвящен обзору довольно обширных тем, которые, так или иначе, пригодятся всем ABAP программистам в их повседневной деятельности. Одной из рассматриваемых тем данного курса…
https://abap-blog.ru/osnovy-abap/dinamicheskoe-programmirovanie-v-abap/
abap-blog.ru
ABAP Blog | Динамическое программирование в ABAP
На днях довелось прослушать курс BC402 в рамках программы «Вечерний ABAP», хочется выразить благодарность компании SAP за такую возможность, а также отметить профессионализм преподавателя, в роли которого выступал Василий Ковальский. Сам курс посвящен обзору…
Точки наблюдения и Field-symbols (от 24.09.2015)
ABAP отладчик ограничивает использование точек наблюдения (whatchpoints) на field-symbols, однако можно обойти это ограничение путём использования точки прерывания на базе исходного кода. Рассмотрим пример кода: DATA: lt_test TYPE STANDARD TABLE OF i. FIELD-SYMBOLS: TYPE i. APPEND 1 TO lt_test. APPEND 2 TO lt_test. APPEND 3 TO lt_test. LOOP AT lt_test ASSIGNING . sy-tabix =…
https://abap-blog.ru/osnovy-abap/tochki-nablyudeniya-i-field-symols/
ABAP отладчик ограничивает использование точек наблюдения (whatchpoints) на field-symbols, однако можно обойти это ограничение путём использования точки прерывания на базе исходного кода. Рассмотрим пример кода: DATA: lt_test TYPE STANDARD TABLE OF i. FIELD-SYMBOLS: TYPE i. APPEND 1 TO lt_test. APPEND 2 TO lt_test. APPEND 3 TO lt_test. LOOP AT lt_test ASSIGNING . sy-tabix =…
https://abap-blog.ru/osnovy-abap/tochki-nablyudeniya-i-field-symols/
abap-blog.ru
ABAP Blog | Точки наблюдения и Field-symbols
ABAP отладчик ограничивает использование точек наблюдения (whatchpoints) на field-symbols, однако можно обойти это ограничение путём использования точки прерывания на базе исходного кода. Рассмотрим пример кода: DATA: lt_test TYPE STANDARD TABLE OF i. FIELD…
Адаптация WDP приложений (от 06.10.2015)
Следующим курсом в рамках программы «Вечерний ABAP» для меня стал курс об основах Web Dynpro – NET310. Курс рассматривает базовые понятия WDP, такие как типы контроллеров, окна, ракурсы, базовые элементы UI, приложения и взаимодействия между всеми этими объектами. Одной из самых любопытных для меня тем была возможность изменения существующих WDP приложений. Когда заходит речь об…
https://abap-blog.ru/network/web-dynpro/adaptaciya-wdp-prilozhenij/
Следующим курсом в рамках программы «Вечерний ABAP» для меня стал курс об основах Web Dynpro – NET310. Курс рассматривает базовые понятия WDP, такие как типы контроллеров, окна, ракурсы, базовые элементы UI, приложения и взаимодействия между всеми этими объектами. Одной из самых любопытных для меня тем была возможность изменения существующих WDP приложений. Когда заходит речь об…
https://abap-blog.ru/network/web-dynpro/adaptaciya-wdp-prilozhenij/
abap-blog.ru
ABAP Blog | Адаптация WDP приложений
Следующим курсом в рамках программы «Вечерний ABAP» для меня стал курс об основах Web Dynpro – NET310. Курс рассматривает базовые понятия WDP, такие как типы контроллеров, окна, ракурсы, базовые элементы UI, приложения и взаимодействия между всеми этими объектами.…
ABAP 7.50 (от 24.10.2015)
Стала доступна документация к ABAP 7.50.
https://abap-blog.ru/osnovy-abap/abap-7-50/
Стала доступна документация к ABAP 7.50.
https://abap-blog.ru/osnovy-abap/abap-7-50/
abap-blog.ru
ABAP Blog | ABAP 7.50
Стала доступна документация к ABAP 7.50.
Secure store and forward (от 09.11.2015)
Secure store and forward (SSF) – это механизм обеспечивающий возможности использования криптографии на платформе SAP NetWeaver. Основными криптографическими задачами являются: создание цифровых подписей (ЭЦП), их проверка, шифрование и расшифровка данных. Использование SSF возможно только совместно с крипто-продуктом (назовем его провайдером). Провайдеры могут быть внутренними или внешними. В зависимости от типа провайдера, он может поддерживать разные криптографические…
https://abap-blog.ru/others/secure-store-and-forward/
Secure store and forward (SSF) – это механизм обеспечивающий возможности использования криптографии на платформе SAP NetWeaver. Основными криптографическими задачами являются: создание цифровых подписей (ЭЦП), их проверка, шифрование и расшифровка данных. Использование SSF возможно только совместно с крипто-продуктом (назовем его провайдером). Провайдеры могут быть внутренними или внешними. В зависимости от типа провайдера, он может поддерживать разные криптографические…
https://abap-blog.ru/others/secure-store-and-forward/
abap-blog.ru
ABAP Blog | Secure store and forward
Secure store and forward (SSF) — это механизм обеспечивающий возможности использования криптографии на платформе SAP NetWeaver. Основными криптографическими задачами являются: создание цифровых подписей (ЭЦП), их проверка, шифрование и расшифровка данных.…
Декоратор (Decorator, Wrapper) (от 01.05.2016)
Метафора Как понятно из названия, данный паттерн чаще всего используется для расширения исходного объекта до требуемого вида. Например, мы условно можем считать «декоратором» человека с кистью и красной краской. Таким образом, какой бы объект (или определенный тип объектов) мы не передали в руки «декоратору», на выходе мы будем получать красные объекты. Назначение …
https://abap-blog.ru/osnovy-abap/oop/dekorator-decorator-wrapper/
Метафора Как понятно из названия, данный паттерн чаще всего используется для расширения исходного объекта до требуемого вида. Например, мы условно можем считать «декоратором» человека с кистью и красной краской. Таким образом, какой бы объект (или определенный тип объектов) мы не передали в руки «декоратору», на выходе мы будем получать красные объекты. Назначение …
https://abap-blog.ru/osnovy-abap/oop/dekorator-decorator-wrapper/
abap-blog.ru
ABAP Blog | Декоратор (Decorator, Wrapper)
Метафора Как понятно из названия, данный паттерн чаще всего используется для расширения исходного объекта до требуемого вида. Например, мы условно можем считать «декоратором» человека с кистью и красной краской. Таким образом, какой бы объект (или определенный…
Адаптер (Adapter) (от 01.05.2016)
Метафора Представьте себе китайскую вилку и нашу розетку, воткнуть просто так без адаптера у вас не выйдет. Назначение Есть некоторые разрозненные классы, которые поддерживают требуемые данные и поведения, однако они не предоставляют необходимого интерфейса для взаимодействия с ними. Для этого Вам необходимо создать класс обёртку с нужным интерфейсом, который внутри себя будет…
https://abap-blog.ru/osnovy-abap/oop/adapter-adapter/
Метафора Представьте себе китайскую вилку и нашу розетку, воткнуть просто так без адаптера у вас не выйдет. Назначение Есть некоторые разрозненные классы, которые поддерживают требуемые данные и поведения, однако они не предоставляют необходимого интерфейса для взаимодействия с ними. Для этого Вам необходимо создать класс обёртку с нужным интерфейсом, который внутри себя будет…
https://abap-blog.ru/osnovy-abap/oop/adapter-adapter/
abap-blog.ru
ABAP Blog | Адаптер (Adapter)
Метафора Представьте себе китайскую вилку и нашу розетку, воткнуть просто так без адаптера у вас не выйдет. Назначение Есть некоторые разрозненные классы,
Заместитель (Proxy) (от 01.05.2016)
Метафора Наверняка вы работали когда-нибудь с прокси-серверами? Суть паттерна такая же, есть некоторый прокси объект, который делает перенаправление вызовов к реальному объекту. При этом для Вас как для клиента ничего не меняется, интерфейс остаётся тем же. Назначение Является суррогатом другого объекта и контролирует доступ к нему. Решает проблему контроля доступа к объекту,…
https://abap-blog.ru/osnovy-abap/oop/zamestitel-proxy/
Метафора Наверняка вы работали когда-нибудь с прокси-серверами? Суть паттерна такая же, есть некоторый прокси объект, который делает перенаправление вызовов к реальному объекту. При этом для Вас как для клиента ничего не меняется, интерфейс остаётся тем же. Назначение Является суррогатом другого объекта и контролирует доступ к нему. Решает проблему контроля доступа к объекту,…
https://abap-blog.ru/osnovy-abap/oop/zamestitel-proxy/
abap-blog.ru
ABAP Blog | Заместитель (Proxy)
Метафора Наверняка вы работали когда-нибудь с прокси-серверами? Суть паттерна такая же, есть некоторый прокси объект, который делает перенаправление вызовов к реальному объекту. При этом для Вас как для клиента ничего не меняется, интерфейс остаётся тем же.…
Состояние (State) (от 01.05.2016)
Метафора В реальной жизни каждый человек может прибывать в разных состояниях. Если вы устали, то на предложение «Сходи в магазин», вы скорее ответите «Не пойду, я устал». А если вы не устали, тогда скорее всего вы ответите «Уже иду». Таким образом, ваше поведение зависит от того, в каком состоянии Вы прибываете. Назначение …
https://abap-blog.ru/osnovy-abap/oop/sostoyanie-state/
Метафора В реальной жизни каждый человек может прибывать в разных состояниях. Если вы устали, то на предложение «Сходи в магазин», вы скорее ответите «Не пойду, я устал». А если вы не устали, тогда скорее всего вы ответите «Уже иду». Таким образом, ваше поведение зависит от того, в каком состоянии Вы прибываете. Назначение …
https://abap-blog.ru/osnovy-abap/oop/sostoyanie-state/
abap-blog.ru
ABAP Blog | Состояние (State)
Метафора В реальной жизни каждый человек может прибывать в разных состояниях. Если вы устали, то на предложение «Сходи в магазин», вы скорее ответите «Не пойду,
Хранитель (Memento) (от 01.05.2016)
Метафора Представьте себе гардероб и гардеробщицу, когда вы сдаете свою одежду в гардероб, гардеробщица реализует паттерн «хранитель», запоминая ваше состояние – «одежду», когда вам потребуется восстановить состояние, вы просто обращаетесь к гардеробщице за одеждой и восстанавливаете свое состояние до прихода в гардероб. Назначение Паттерн позволяет, не нарушая инкапсуляцию, зафиксировать и сохранить внутреннее…
https://abap-blog.ru/osnovy-abap/oop/xranitel-memento/
Метафора Представьте себе гардероб и гардеробщицу, когда вы сдаете свою одежду в гардероб, гардеробщица реализует паттерн «хранитель», запоминая ваше состояние – «одежду», когда вам потребуется восстановить состояние, вы просто обращаетесь к гардеробщице за одеждой и восстанавливаете свое состояние до прихода в гардероб. Назначение Паттерн позволяет, не нарушая инкапсуляцию, зафиксировать и сохранить внутреннее…
https://abap-blog.ru/osnovy-abap/oop/xranitel-memento/
abap-blog.ru
ABAP Blog | Хранитель (Memento)
Метафора Представьте себе гардероб и гардеробщицу, когда вы сдаете свою одежду в гардероб, гардеробщица реализует паттерн «хранитель», запоминая ваше состояние — «одежду», когда вам потребуется восстановить состояние, вы просто обращаетесь к гардеробщице…
Цепочка обязанностей (Chain of Responsibility) (от 01.05.2016)
Метафора Метафорой данного шаблона можно представить какой-нибудь орган гос. власти. Вы приходите в налоговую инспекцию за получением справки, оставляете заявление на её получение. Заявление у вас принимает один специалист, а далее в зависимости от типа документа, перенаправляет его на нужного человека, который специализируется обработкой этих заявок. Таким образом, ваше заявление (сообщение) проходит и обрабатывается…
https://abap-blog.ru/osnovy-abap/oop/cepochka-otvetstvennosti-chain-of-responsibility/
Метафора Метафорой данного шаблона можно представить какой-нибудь орган гос. власти. Вы приходите в налоговую инспекцию за получением справки, оставляете заявление на её получение. Заявление у вас принимает один специалист, а далее в зависимости от типа документа, перенаправляет его на нужного человека, который специализируется обработкой этих заявок. Таким образом, ваше заявление (сообщение) проходит и обрабатывается…
https://abap-blog.ru/osnovy-abap/oop/cepochka-otvetstvennosti-chain-of-responsibility/
abap-blog.ru
ABAP Blog | Цепочка обязанностей (Chain of Responsibility)
Метафора Метафорой данного шаблона можно представить какой-нибудь орган гос. власти. Вы приходите в налоговую инспекцию за получением справки, оставляете заявление на её получение. Заявление у вас принимает один специалист, а далее в зависимости от типа документа…
Мост (Bridge) (от 01.05.2016)
Метафора Представим ситуацию, когда вам требуется работать на разных автомобилях, однако садясь в новый автомобиль вам уже желательно знать, как им управлять. Таким образом, Вы сталкиваетесь с паттерном «мост». С одной стороны, вы имеете множество различных автомобилей (разные модели и марки), но среди них есть общая абстракция (интерфейс) в виде руля, педалей, коробки передач…
https://abap-blog.ru/osnovy-abap/oop/most-bridge/
Метафора Представим ситуацию, когда вам требуется работать на разных автомобилях, однако садясь в новый автомобиль вам уже желательно знать, как им управлять. Таким образом, Вы сталкиваетесь с паттерном «мост». С одной стороны, вы имеете множество различных автомобилей (разные модели и марки), но среди них есть общая абстракция (интерфейс) в виде руля, педалей, коробки передач…
https://abap-blog.ru/osnovy-abap/oop/most-bridge/
abap-blog.ru
ABAP Blog | Мост (Bridge)
Метафора Представим ситуацию, когда вам требуется работать на разных автомобилях, однако садясь в новый автомобиль вам уже желательно знать, как им управлять.
Команда (Command) (от 01.05.2016)
Метафора Паттерн команда хорошо может быть представлен в виде выключателя в квартирах. Каждый выключатель по своей сути делает одно простое действие – соединяет или разъединяет провода. Что будет при этом ему не важно, к нему может быть подключена лампочка или пылесос, для выключателя это не имеет значения. Назначение Паттерн преобразовывает запрос на…
https://abap-blog.ru/osnovy-abap/oop/komanda-command-2/
Метафора Паттерн команда хорошо может быть представлен в виде выключателя в квартирах. Каждый выключатель по своей сути делает одно простое действие – соединяет или разъединяет провода. Что будет при этом ему не важно, к нему может быть подключена лампочка или пылесос, для выключателя это не имеет значения. Назначение Паттерн преобразовывает запрос на…
https://abap-blog.ru/osnovy-abap/oop/komanda-command-2/
abap-blog.ru
ABAP Blog | Команда (Command)
Метафора Паттерн команда хорошо может быть представлен в виде выключателя в квартирах. Каждый выключатель по своей сути делает одно простое действие — соединяет или разъединяет провода. Что будет при этом ему не важно, к нему может быть подключена лампочка…