Паттерн изменения личной истории в мета-состоянии

Паттерн State (состояние)

Паттерны » Паттерны поведения » State

Назначение паттерна State

  • Паттерн State позволяет объекту изменять свое поведение в зависимости от внутреннего состояния. Создается впечатление, что объект изменил свой класс.
  • Паттерн State является объектно-ориентированной реализацией конечного автомата.

Решаемая проблема

Поведение объекта зависит от его состояния и должно изменяться во время выполнения программы. Такую схему можно реализовать, применив множество условных операторов: на основе анализа текущего состояния объекта предпринимаются определенные действия. Однако при большом числе состояний условные операторы будут разбросаны по всему коду, и такую программу будет трудно поддерживать.

Обсуждение паттерна State

Паттерн State решает указанную проблему следующим образом:

  • Вводит класс Context, в котором определяется интерфейс для внешнего мира.
  • Вводит абстрактный класс State.
  • Представляет различные «состояния» конечного автомата в виде подклассов State.
  • В классе Context имеется указатель на текущее состояние, который изменяется при изменении состояния конечного автомата.

Паттерн State не определяет, где именно определяется условие перехода в новое состояние. Существует два варианта: класс Context или подклассы State.

Преимущество последнего варианта заключается в простоте добавления новых производных классов.

Недостаток заключается в том, что каждый подкласс State для осуществления перехода в новое состояние должен знать о своих соседях, что вводит зависимости между подклассами.

Обратите внимание

Существует также альтернативный таблично-ориентированный подход к проектированию конечных автоматов, основанный на использовании таблицы однозначного отображения входных данных на переходы между состояниями.

Однако этот подход обладает недостатками: трудно добавить выполнение действий при выполнении переходов.

Подход, основанный на использовании паттерна State, для осуществления переходов между состояниями использует код (вместо структур данных), поэтому эти действия легко добавляемы.

Структура паттерна State

Класс Context определяет внешний интерфейс для клиентов и хранит внутри себя ссылку на текущее состояние объекта State.

Интерфейс абстрактного базового класса State повторяет интерфейс Context за исключением одного дополнительного параметра — указателя на экземпляр Context. Производные от State классы определяют поведение, специфичное для конкретного состояния.

Класс «обертка» Context делегирует все полученные запросы объекту «текущее состояние», который может использовать полученный дополнительный параметр для доступа к экземпляру Context.

UML-диаграмма классов паттерна State

Пример паттерна State

Паттерн State позволяет объекту изменять свое поведение в зависимости от внутреннего состояния. Похожая картина может наблюдаться в работе торгового автомата. Автоматы могут иметь различные состояния в зависимости от наличия товаров, суммы полученных монет, возможности размена денег и т.д. После того как покупатель выбрал и оплатил товар, возможны следующие ситуации (состояния):

  • Выдать покупателю товар, выдавать сдачу не требуется.
  • Выдать покупателю товар и сдачу.
  • Покупатель товар не получит из-за отсутствия достаточной суммы денег.
  • Покупатель товар не получит из-за его отсутствия.

Использование паттерна State

  • Определите существующий или создайте новый класс-«обертку» Context, который будет использоваться клиентом в качестве «конечного автомата».
  • Создайте базовый класс State, который повторяет интерфейс класса Context. Каждый метод принимает один дополнительный параметр: экземпляр класса Context. Класс State может определять любое полезное поведение «по умолчанию».
  • Создайте производные от State классы для всех возможных состояний.
  • Класс-«обертка» Context имеет ссылку на объект «текущее состояние».
  • Все полученные от клиента запросы класс Context просто делегирует объекту «текущее состояние», при этом в качестве дополнительного параметра передается адрес объекта Context.
  • Используя этот адрес, в случае необходимости методы класса State могут изменить «текущее состояние» класса Context.

Особенности паттерна State

  • Объекты класса State часто бывают одиночками.
  • Flyweight показывает, как и когда можно разделять объекты State.
  • Паттерн Interpreter может использовать State для определения контекстов при синтаксическом разборе.
  • Паттерны State и Bridge имеют схожие структуры за исключением того, что Bridge допускает иерархию классов-конвертов (аналогов классов-«оберток»), а State-нет. Эти паттерны имеют схожие структуры, но решают разные задачи: State позволяет объекту изменять свое поведение в зависимости от внутреннего состояния, в то время как Bridge разделяет абстракцию от ее реализации так, что их можно изменять независимо друг от друга.
  • Реализация паттерна State основана на паттерне Strategy. Различия заключаются в их назначении.

Реализация паттерна State

Рассмотрим пример конечного автомата с двумя возможными состояниями и двумя событиями.

Источник: http://cpp-reference.ru/patterns/behavioral-patterns/state/

Глава 9 Изменение метапрограмм

Как стать другим человеком

Модель НЛП демонстрирует прежде всего пластичность че­ловеческой природы и сознания. У нас имеются «программы», но они не вырезаны в камне — что не позволило бы их изменять. Мы можем их корректировать. Фактически, в случае нормального процесса роста, мы это и делаем.

То, что предлагает модель НЛП и что мы пытаемся здесь разъ­яснить, касается процессов, посредством которых мы можем со­знательно, намеренно и эффективно трансформировать свой об­раз мыслей и чувств и, следовательно, сами структуры того, что мы называем «личностью».

Другими словами, у нас всегда имеется выбор в отношении того, какую операционную систему запустить в своем мыслительном, аппарате в качестве программного обеспечения своих мыслей, чувств и реакций.

У нас всегда имеется несколько возможностей —если мы знаем, как их увидеть.

Само собой, мы будем лишены выбора, если у нас не будет знаний о том, как осмыслять варианты, аль­тернативные метапрограммы, различные паттерны и контексты мышления, различную психо-логику.

Использование процессов метауровня для осуществления изменения

Роберт Дилтс (Dilts, 1990) предложил использовать метапо-зицию, чтобы продемонстрировать, как мы можем подвести чело­века к метауровню его линии времени с целью изменения мета­программы.

В метапознции мы можем получить доступ к ресуР» сам и превратить их обратно в воспоминания, с тем чтобы изменить контекст мышления, который мы инкорпорировали.

Метапозииия обеспечивает нам пространство, которое отличается от «простран*

Глава 9. Изменение метапрограмм______________________ 245

Читайте также:  Упражнения йоги для расслабления и сосредоточения

ства проблемы» и позволяет менять субмодальности, встраивать убеждения, обогащающие идентичность, осуществлять реимприн-тинг, изменять предысторию и т. д. А эти операции позволяют нам изменять свои метапрограммы. Дилтс пишет:

Некоторым образом контекстреимпринтинга снабжа­ет вас средством для изменения паттернов метапро­грамм и стилей сортировки.

Например, вы можете лег­ко повлиять на человека, так чтобы он оказался в режи­ме «во времени* или «сквозь время*, в движении ют* или «навстречу» или сортировал из настоящего времени к прошлому, из прошлого к будущему либо из настоящего к будущему. Выможете побудить человека сортировать посредством его «я*, другихлюдей или контекста (Dilts, 1990, р. 137).

Как определить, какие метапрограммы нужно изменить

Важно

Почему человек хочет изменить метапрограмму в данном кон­тексте? Основная причина в том, что она работает не слишком хорошо. В Meta-Statesjournal (март 1997 г.) я (MX) писал о твор­ческих способностях и метапрограммах, показывая, что в случае навыка или стратегии творчества некоторые метапрограммы ра­ботают исключительно хорошо, тогда как другие препятствуют творчеству:

На состояние и стратегию творчества значимо влияют несколько стилей сортировки объектов или обработки информации (называемых в НЛП «метапрограммами»).

У людей, которых мы очень быстро признаем творцами, имеютсяметапрограммы функционирования в окружа­ющем мире посредством сортировки «возможностей» (а не «процедур»).

Они также выискивают «различия» (а не «тождество»), когда размышляют, воспринимают, гюдмечают что-то и т. д.

Когдачеловекуправляетсвоиммозгом, высматриваяи оце-ниваяалътернативы или возможности, это помогает ему генерироватьещеболееоригинальныеидеи. Управление сво­им мозгом посредством сортировки на «различия», несо­ответствия, неординарность и т. д. запускает процесс, обеспечивающий наибольшую вероятность создания чего-то нового и необычного.

246____________________________________ Часть 111 Применений

Другаяметапрограмма, которая способствует творче­ству, —это сортировка с «отнесением ксебе* (а не к дру­гим).

Она позволяет человеку использовать внутренний локус контроля/авторитета вместо «отнесения к дру-' гим» (и внешнего локуса контроля).

Такая сортировка поддерживает «творческий* образ жизни, мыслей, эмо­ций и реагирования, поскольку человек обладает «внут­ренним знанием* того, что он предпочитает, ценит, одобряет, о чеммечтает и т.д.

Способ сортировки с отнесением к другим обычно приво­дит ктому, чтомы слишком стараемсяугодить окружа­ющим, добиться их одобрения, подстроиться под их цен­ности, не конфликтовать с ними, предлагаянечто совер­шенно непохожее или странное, и соответствовать их критериям.

Напротив, если вы сортируете посредством отнесения к себе, вы можете выдвигать новые, необыч­ные и оригинальные идеи и представления, которые рож­даются внутри вас, не беспокоясь о том, что думают дру­гие и одобрят они это или нет.

Вас ведут вперед ваше ви­дение и энтузиазм, а не похвала и одобрение со стороны окружающих (Hall, 1997b, pp. 5-6).

Паттерн изменения метапрограмм

Роббинс (Robbins, 1986) говорит, что один из способов изме­нения метапрограммы предполагает «сознательное решение по­ступить таким образом». Однако, поскольку большинство из нас вообще не задумываются о ментальном программном обеспече­нии, мы этого просто не делаем.

Совет

Отсюда следует, что мы должны сначала осознать свою операционную систему и использовать это осознание как исходную точку для нового выбора. Поскольку ме­тапрограмма информирует наш мозг о том, что нужно «стереть», то, двигаясь навстречу ценностям, мы «стираем» осознание того, от чего мы уходим. Если мы выискиваем детали, то «стираем» об­щую картину.

Направляя свое осознание на то, что мы обычно «сти­раем», мы можем сместить фокус и изменить свои операционные системы.

Паттерн

1. Идентифицируйте метапрограмму, которая в настоящий мо­мент управляет вашей сортировкой, обработкой информации и вниманием. В частности, идентифицируйте, когда, где и как вы

Глава 9. Изменение метапрограмм 247

используете метапрограмму, которая плохо вам служит, и опре­делите, почему она снижает вашу эффективность.

2. Полностью опишите метапрограмму, которую вы хотите
иметь в своем распоряжении.
Какую метауровневую обработку, «управляющую вашим восприятием и оцениванием», вы предпочли бы иметь? Уточните, когда, где и как эта метапрограмма должна

руководить вашим сознанием.

3. Опробуйте ее. Мысленно установите новую метапрограм­ му, а затем попробуйте использовать ее при сортировке, восприя­ тии, концентрации внимания и т. д.

Отметьте, как она выглядит, ощущается и работает в определенных контекстах, в которых, как вам кажется, она послужит вам лучше.

Даже если она кажется немного «странной» ввиду того, что вы не привыкли смотреть на мир через данный конкретный перцептивный фильтр, отметьте,

какие иные чувства, кроме дискомфорта, она может вызвать.

Если вам известен человек, который использует эту ме­тапрограмму, исследуйте вместе с ним его опыт, пока вы не сможете занять вторую позицию по отношению к ней.

Обратите внимание

Когда вамэтоудастся, полностью перейдите к дан­ной позиции, так чтобы вы могли увидеть мир глазами этогочеловека, слыша то, что слышит он,разговаривая с самим собой так, как ведет внутренний диалог этот человек, и испытывая те же чувства, что и он.

4. Проведите ее экологическую проверку. Перейдите к мета, к еще более высокому уровню, и посмотрите, что новая метапрограмма дает вам с точки зрения восприятия, оценки, убеждений, поведе­ ния и т. д. В какого человека она начинает превращать вас? Какое

влияние она оказывает на различные аспекты вашей жизни?

5. Позвольте себе установить ее на какой-то период времени.
Зачастую человек может «установить» фильтр метапрограммы, дав себе разрешение воспользоваться им.

После того как вы дадите себе подобное разрешение, загляните внутрь себя и посмотрите, не возражает ли против него какая-то часть вашей личности. Если возражений нет, перенесите метапрограмму на будущее.

Если имеется какое-то возражение, используйте его для реструктури­ зации своего разрешения, так чтобы оно включало в себя это возра­

жение.

Например, предположим, что вы обычно использовали метапро­грамму с внешней ориентацией (№ 14) и что вы даете себе разре­шение перейти к внутренней ориентации. Однако когда вы это

Читайте также:  Как правильно преподнести себя

248 Часть Ш. Применен^

делаете, то слышите внутренний голос, который по своей интона­ции напоминает голос вашей матери: «Эгоистично думать только о себе. Не будь таким эгоистом, ты потеряешь всех своих друзей».

Этот голос выдвигает два возражения: эгоизм и возможное оди­ночество. Поэтому перефразируйте свое разрешение так, чтобы оно принимало во внимание эти возражения.

«Я даю себе разре­шение смотреть на мир исходя из собственных представлений — своих ценностей, убеждений, желаний и т. д.

, зная, что мои ценно­сти включают в себя любовь, заботу и уважение к окружающим и что это обеспечит мне сбалансированность, поскольку я учиты­ваю влияние своего поведения на других людей».

Важно

6. Перенесите эту метапрограмму на будущее. Мысленно по­практикуйтесь в использовании метапрограммы — до тех пор, пока она не покажется вам комфортной и привычной.

Устранение-неисправностей. Если у вас возникают трудности, проделайте ту же процедуру на своей линии времени, сначала под­нявшись над самим собой и этой линией (к своей линии мета), а затем перенесясь вдоль линии назад в свое прошлое, пока вы не натолкнетесь на одно или несколько ключевых событий, когда вы начали использовать прежнюю метапрограмму…

Затем спросите себя: «Если бы я мог узнать, когда я принял первичное решение действовать исходя из внешней ориентации (назовите метапрограмму, которую вы хотите изменить), то пред­положил бы, что это произошло до моего рождения, во время него или после?»

Воспользуйтесь одним из процессов линии времени для того, чтобы нейтрализовать прежние эмоции, мысли, убеждения, реше­ния и т. д., — приемом визуально-кинестетической диссоциаций, паттерном аннулирования решений и т. д. Избавившись от старо­го паттерна, вы можете установить новую метапрограмму.

Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:

Источник: https://zdamsam.ru/b30632.html

паттерн состояние

Предыдущий: режим наблюдателя

В режиме государственного (государственного образца), поведение класса основывается на его статус изменился. Этот тип шаблонов проектирования относятся поведенческие модели.

В государственной модели, мы создаем объекты и различные поведенческие состояний наряду с состоянием объекта изменяется измененном представления контекста объекта.

Намерение: Позволяет объекту изменять свое поведение во внутреннем состоянии изменяется, то объект появляется , чтобы изменить свой класс.

Главным образом решить: поведение объекта зависит от его состояния (атрибутов), и вы можете изменить его в соответствии с его государством , связанные с изменением поведения.

Когда использовать: Код содержит большое количество объектов , связанных со статусом условных операторов.

Как исправить: статус конкретных классов абстрактных вне.

Ключевой код: режим командного интерфейса , как правило , только один метод.Статус интерфейса, в котором один или несколько методов.

Кроме того, метод государственного режима класса реализации, как правило, возвращаемого значения, или изменить значение переменной экземпляра. То есть, состояние и состояние объектной модели, как правило, актуальны.

Методы класса реализации имеют различные функции, методы интерфейса охвачены. Режим Состояние и командный режим то же самое может быть использован для устранения других условий, если … Else выбор.

Примеры применения: 1, играть в баскетбол игрок может иметь нормальное состояние, а не нормальное состояние и ненормальное состояние.2, маркиза Yi Цзэн колокола, то 'часы абстрактный интерфейс', 'часы А' и другие конкретные состояния, специфическая среда '' китайские колокола (контекст).

Преимущества: 1, инкапсулирует правила преобразования.2, перечислить возможные состояния, прежде чем перечисление государству необходимо определить статус видов.

3, все с поведением государства, связанных в класс, и вы можете легко добавить новое состояние, нужно только изменить состояние объекта может изменить поведение объектов. 4, что позволяет осуществить переход состояния логическое состояние объекта в одном, а не один огромный блок условных операторов.

5, позволяет использовать несколько объектов разделяют среду состояние объекта, тем самым уменьшая количество объектов в системе.

Недостатки: 1, Паттерн состояние использования связано с увеличением числа системных классов и объектов.2, структура и реализация государственной формы являются более сложными, при неправильном использовании может вызвать путаницу структуру программы и код.

3, поддержка государственного образца «Открытый Закрытый принцип» не очень хорошо, вы можете переключать состояние государственной модели, добавляя новые классы нужно изменить статус лиц, ответственных за переходы состояний исходного кода, или не может перейти в новое состояние, и изменить состояние класс действовать также необходимо модифицировать исходный код соответствующего класса.

Сценарии использования: 1, с поведением изменения состояния и изменения сцены.2, условный переход утверждение заменой.

Примечание: При использовании ограниченного государственного поведения путем государственного режима, а государство не более пяти.

Совет

Мы создадим интерфейс статуса и сущностигосударственныйкласс реализации интерфейсаState.Контекст представляет собой класс с определенным состоянием.

StatePatternDemo,мы демонстрируем использование объектовКонтекстКонтекст класса и статуса , чтобы продемонстрировать изменение поведения в состоянии изменения.

Шаг 1

Создайте интерфейс.

State.java

public interface State { public void doAction(Context context); }

Шаг 2

Создать класс сущностей, который реализует интерфейс.

StartState.java

Открытый класс StartState реализует государство { общественного недействительными DoAction (контекст Контекст) { System.out.println ( «Игрок находится в стартовом состоянии»); context.setState (это); } общественного Строка ToString () { вернуть «начальное состояние»; } }

StopState.java

public class StopState implements State { public void doAction(Context context) { System.out.println(«Player is in stop state»); context.setState(this); } public String toString(){ return «Stop State»; } }

Шаг 3

Создание классаконтекста.

Context.java

Открытый класс {Context частное Государственное государство; общественный контекст () { состояние = NULL; } общественного недействительными SetState (Государственное государство) { this.state = состояние; } общенародного государства GetState () { возвращать состояние; } }

Шаг 4

Используйтеконтекст, чтобы увидеть поведение при изменении состояния измененийсостояния.

StatePatternDemo.java

Открытый класс StatePatternDemo { государственной статической силы основных (String []) {агдз Контекст Контекст = новый контекст (); StartState startState = новый StartState (); startState.doAction (контекст); System.out.println (context.getState () ToString ().); StopState stopState = новый StopState (); stopState.doAction (контекст); System.out.println (context.getState () ToString ().); } }

Читайте также:  Лучшие упражнения для тренинга личностного роста

Шаг 5

Проверьте выход.

Игрок находится в стартовом состоянии Start государственный Игрок находится в состоянии останова остановленном Предыдущий: режим наблюдателя

Источник: http://www.w3big.com/ru/design-pattern/state-pattern.html

Техника «Изменение личной истории»

Техника «Изменение личной истории»

Выберите в пространстве место, где вы сможете играть в Алфавит.

Рядом с выбранным местом представьте себе на полу абстрактную линию времени. Отметьте бумажками (или чем-нибудь еще) где на этой линии времени находится сегодняшний день, и где находится точка вашего рождения (оставьте перед ней небольшой запас пространства на всякий случай).

Теперь отметьте на линии времени точки, где в вашем прошлом происходили ситуации, в которых вы хотели бы быть эффективнее, или которые вы хотели бы изменить.

Затем отметьте на линии точки, соответствующие аналогичным ситуациям, которые могут случиться в будущем.

Пройдитесь по отмеченным точкам, ассоциируясь в каждую ситуацию во всех трех системах восприятия, чтобы ваше бессознательное изнутри запомнило что чему соответствует.

Если по ходу вашего движения по линии времени, у вас возникнет ощущение, что где-то есть еще аналогичные ситуации, суть которых вы не можете вспомнить, но примерно представляете, где на линии времени они находятся, отметьте их тоже.

Вернитесь в место для игры в Алфавит и поиграйте в него до четкого появления состояния высокой продуктивности. Если хотите, для ускорения вызова состояния можете воспользоваться моделью О.Р.У.Ж.И.Е., выполнив действия в такой же последовательности, как в упражнении «Взлетная полоса».

Как только в ходе игры в Алфавит вы почувствуете, что состояние высокой продуктивности появилось в достаточно ощутимой степени, быстро перейдите на ту точку на линии времени, с которой вам спонтанно захочется начать, ассоциируйтесь в ситуацию, и дальше позвольте происходить всему, что происходит само собой. Не делайте ничего специально.

Обратите внимание

Когда у вас возникнет , что ситуация исчерпана (все изменения в нее внесены), перейдите в следующую точку и перепроживите теперь ее. Затем в следующую и т.д.

Последовательность перехода по точкам может быть любой. При выборе их руководствуйтесь своими ощущениями — в этом состоянии, это «голос» вашего бессознательного.

Если вы почувствуете, что некоторые точки потеряли свою актуальность, хотя вы с ними даже еще не работали, тогда пропустите их. Скорее всего, изменения в предыдущих ситуациях автоматически изменили и эти ситуации.

Если вы почувствуете, что на линии времени где-то есть есть еще ситуации, которые не были отмечены, но нуждаются в изменениях, отметьте и проработайте их тоже.

Если в какой-то момент вы заметите, что интенсивность состояния стала недостаточной для изменения ситуации, вернитесь к Алфавиту и поиграйте в него еще. Обычно в «игровом» пространстве состояние высокой продуктивности возобновляется почти сразу.

Когда вы перепроживете в состоянии высокой продуктивности все ситуации на этой линии времени, соберите бумажки, которыми вы их отмечали любым символичным для вас способом, означающим для вас завершение работы и закрытие рамки этого контекста.

В процессе выполнения техники помните, что большинство изменений происходит на бессознательном уровне и для большей эффективности старайтесь в моменты перепроживания ситуаций не делать сознательных действий (анализ, рефлексия).

Вы можете что-то видеть, что-то слышать, что-то чувствовать, вам могут приходить новые мысли, но это не обязательно будет иметь прямую связь с проходящей внутри работой.

Важно

В момент перепроживания может ничего и не быть, кроме смутных ощущений, но это не значит, что ничего не происходит — просто сознание может либо не успевать за изменениями, либо находиться на другом уровне восприятия, либо просто ваше бессознательное могло решить, что вам лучше этого не показывать=).

Если после выполнения техники вы чувствуете, что сильно устали — не делайте ее больше в этот день.

Если после выполнения техники вы планируете садиться за руль или заниматься какими-то действиями, требующими высокого сознательного внимания, сделайте перерыв в 30 минут и переключитесь любым удобным для вас способом: попейте чаю, пообщайтесь на отвлеченные темы, послушайте радио, почитайте анекдоты и т.п.

Если поймали себя на том, что в каком-то контексте (или в какой-то ситуации) у вас есть только одна стратегия действия (или только один способ поведения), то вам повезло! Вы обнаружили собственный паттерн, лишающий вас свободы выбора. Ну а если вы его обнаружили, то главная часть дела сделана — осталось только распрограммировать его.

Для распрограммирования паттернов Джон Гриндер с Кармен Бостик на московском семинаре по Новому Коду НЛП, о котором я упоминал выше, предложили нам технику «Сталкинг» (выслеживание). Название техники точно передает ее суть, и, невзирая на всю свою простоту, эта техника оказалась очень эффективной.

Одним из ее ярких эффектов является то, что новые варианты действий (альтернативные паттерны) начинают осознаваться прямо в ходе ее выполнения.

Но главное, это то, что с помощью Сталкинга вы делаете осознанным каждый миг распрограммируемого паттерна, создавая себе возможность в будущем сделать сознательный выбор в этой ситуации в любую секунду.

Так же Сталкинг идеально работает с коммуникативными ситуациями, в которых общение может развиваться по разным сценариям, но неминуемо переходит границу между здравым смыслом и эмоциями.

Совет

Если у вас есть ситуации, в которых вам в какой-то момент хочется закричать на кого-то: «Я сейчас убью тебя таким-то способом…!», или наоборот, кому-то хочется на вас так закричать=), выполните с этой ситуацией Сталкинг, и вы измените привычное развитие событий.

Источник: https://psibook.com/library/443/18.html

Ссылка на основную публикацию