Паттерн соотнесение, или подстройка под модель мира другого

Медицина
8 ноября 2019

Состояние

Паттерн соотнесение, или подстройка под модель мира другого

Также известен как: State

Состояние — это поведенческий паттерн проектирования, который позволяет объектам менять поведение в зависимости от своего состояния. Извне создаётся впечатление, что изменился класс объекта.

Паттерн Состояние невозможно рассматривать в отрыве от концепции машины состояний, также известной как стейт-машина или конечный автомат.

Конечный автомат.

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

Такой подход можно применить и к отдельным объектам. Например, объект Документ может принимать три состояния: Черновик, Модерация или Опубликован. В каждом из этих состоянии метод опубликовать будет работать по-разному:

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

Возможные состояния документа и переходы между ними.

Машину состояний чаще всего реализуют с помощью множества условных операторов, if либо switch, которые проверяют текущее состояние объекта и выполняют соответствующее поведение. Наверняка вы уже реализовали хотя бы одну машину состояний в своей жизни, даже не зная об этом. Как насчёт вот такого кода, выглядит знакомо?

class Document is field state: string // … method publish() is switch (state) «draft»: state = «moderation» break «moderation»: if (currentUser.role == 'admin') state = «published» break «published»: // Do nothing. break // …

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

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

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

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

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

Документ делегирует работу своему активному объекту-состоянию.

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

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

Ваш смартфон ведёт себя по-разному, в зависимости от текущего состояния:

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

  2. Состояние описывает общий интерфейс для всех конкретных состояний.

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

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

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

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

Пример изменение поведения проигрывателя с помощью состояний.

Объект проигрывателя содержит объект-состояние, которому и делегирует основную работу. Изменяя состояния, можно менять то, как ведут себя элементы управления проигрывателя.

// Общий интерфейс всех состояний.
abstract class State is protected field player: AudioPlayer // Контекст передаёт себя в конструктор состояния, чтобы // состояние могло обращаться к его данным и методам в // будущем, если потребуется. constructor State(player) is this.player = player abstract method clickLock() abstract method clickPlay() abstract method clickNext() abstract method clickPrevious() // Конкретные состояния реализуют методы абстрактного состояния
// по-своему.
class LockedState extends State is // При разблокировке проигрователя с заблокированными // клавишами он может принять одно из двух состояний. method clickLock() is if (player.playing) player.changeState(new PlayingState(player)) else player.changeState(new ReadyState(player)) method clickPlay() is // Ничего не делать. method clickNext() is // Ничего не делать. method clickPrevious() is // Ничего не делать. // Конкретные состояния сами могут переводить контекст в другое
// состояние.
class ReadyState extends State is method clickLock() is player.changeState(new LockedState(player)) method clickPlay() is player.startPlayback() player.changeState(new PlayingState(player)) method clickNext() is player.nextSong() method clickPrevious() is player.previousSong() class PlayingState extends State is method clickLock() is player.changeState(new LockedState(player)) method clickPlay() is player.stopPlayback() player.changeState(new ReadyState(player)) method clickNext() is if (event.doubleclick) player.nextSong() else player.fastForward(5) method clickPrevious() is if (event.doubleclick) player.previous() else player.rewind(5) // Проигрыватель выступает в роли контекста.
class AudioPlayer is field state: State field UI, volume, playlist, currentSong constructor AudioPlayer() is this.state = new ReadyState(this) // Контекст заставляет состояние реагировать на // пользовательский ввод вместо себя. Реакция может быть // разной, в зависимости от того, какое состояние сейчас // активно. UI = new UserInterface() UI.lockButton.onClick(this.clickLock) UI.playButton.onClick(this.clickPlay) UI.nextButton.onClick(this.clickNext) UI.prevButton.onClick(this.clickPrevious) // Другие объекты тоже должны иметь возможность заменять // состояние проигрывателя. method changeState(state: State) is this.state = state // Методы UI будут делегировать работу активному состоянию. method clickLock() is state.clickLock() method clickPlay() is state.clickPlay() method clickNext() is state.clickNext() method clickPrevious() is state.clickPrevious() // Сервисные методы контекста, вызываемые состояниями. method startPlayback() is // … method stopPlayback() is // … method nextSong() is // … method previousSong() is // … method fastForward(time) is // … method rewind(time) is // …

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

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

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

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

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

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

  1. Определитесь с классом, который будет играть роль контекста. Это может быть как существующий класс, в котором уже есть зависимость от состояния, так и новый класс, если код состояний размазан по нескольким классам.

  2. Создайте общий интерфейс состояний. Он должен описывать методы, общие для всех состояний, обнаруженных в контексте. Заметьте, что не всё поведение контекста нужно переносить в состояние, а только то, которое зависит от состояний.

  3. Для каждого фактического состояния создайте класс, реализующий интерфейс состояния. Переместите код, связанный с конкретными состояниями в нужные классы. В конце концов, все методы интерфейса состояния должны быть реализованы во всех классах состояний.

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

    Самый простой — оставить поведение внутри контекста, вызывая его из объекта состояния. С другой стороны, вы можете сделать классы состояний вложенными в класс контекста, и тогда они получат доступ ко всем приватным частям контекста. Но последний способ доступен только в некоторых языках программирования (например, Java, C#).

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

  5. Старые методы контекста, в которых находился зависимый от состояния код, замените на вызовы соответствующих методов объекта-состояния.

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

  • Избавляет от множества больших условных операторов машины состояний.
  • Концентрирует в одном месте код, связанный с определённым состоянием.
  • Упрощает код контекста.
  • Может неоправданно усложнить код, если состояний мало и они редко меняются.
  • Мост, Стратегия и Состояние (а также слегка и Адаптер) имеют схожие структуры классов — все они построены на принципе «композиции», то есть делегирования работы другим объектам. Тем не менее, они отличаются тем, что решают разные проблемы. Помните, что паттерны — это не только рецепт построения кода определённым образом, но и описание проблем, которые привели к данному решению.
  • Состояние можно рассматривать как надстройку над Стратегией. Оба паттерна используют композицию, чтобы менять поведение основного объекта, делегируя работу вложенным объектам-помощникам. Однако в Стратегии эти объекты не знают друг о друге и никак не связаны. В Состоянии сами конкретные состояния могут переключать контекст.

НЛП: Милтон-модель или модель Милтона Эриксона

Паттерн соотнесение, или подстройка под модель мира другого

11 октября 2015 г.

Милтон-модель или модель Милтона Эриксона – это метод НЛП, служащий для введения клиента в состояние транса, где он может найти решение своей проблемы.

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

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

Важно

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

Имеет место сотрудничество между клиентом и терапевтом; реакции клиента позволяет терапевту узнать, что делать дальше.

Милтон Эриксон

Милтона Эриксона считают ведущим гипнотерапевтом своего времени. Тщательно продуманными неконкретными фразами он помогал клиентам открыть способ справиться со своими проблемами и активизировать свои скрытые ресурсы.

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

Некоторые из его подходов вошли в число аксиом НЛП, например:

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

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

Присоединение и ведение

Для присоединения к клиенту, начните копировать его психологию, лексику, тон голоса и т. д.

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

Чтобы ввести клиента в состояние транса, переведите его внимание внутрь себя. Например, вы можете сказать клиенту: «Вы можете заметить, как легко расслабиться в любой момент, просто закрыв глаза».

Модель Милтона: гипнотические языковые паттерны

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

Гипнотические языковые паттерны:

1. Чтение мыслей: дайте понять клиенту, что вы знаете, что он думает или чувствует, но не поясняйте, как вы это узнали.

«Я знаю, что вы считаете …»

«Я знаю, что вы думаете …»

«Я знаю, что вы сейчас в замешательстве»

2. Отсутствие источника высказывания: используйте оценочные выражения без ссылки на автора оценки

«Каждый может расслабиться»

«Этому можно научиться»

«Замечательно, что вы так эрудированы»

3. Причина и эффект: используйте выражения, которые подчёркивают, что одно является причинной другого

«Если…, то …»: «Если вы будете слушать мой голос, то вы сможете много чему научиться»

«Когда вы…, тогда …»: «Когда вы пройдёте этот курс лечения, тогда ваш мозг станет работать лучше»

«… приводит к …»: «Расслабление приводит к лучшему восприятию»

«Покачивания головой заставляют вас еще больше расслабиться»

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

«Вы уже в годах. Вам нельзя полагаться на молодых»

«Вы работаете уже несколько часов. Вы, должно быть, устали»

«Прийти сюда равнозначно тому, что в вашей жизни всё скоро изменится в лучшую сторону»

5. Допущения: используйте постулаты, которые должны восприниматься как данность и не подвергаться сомнению.

«Как вы уже знаете, …»

«Вы измените своё мнение уже сегодня»

6. Указатели общности: используйте обобщения

«Каждый знает …»

«Все люди …»

«Никто не может …»

7. Модальные обороты: дайте понять, что у собеседника есть возможность выбора или он должен что-то сделать.

«Вы можете научиться …»

«Вам лучше бы позаботиться о других»

«Вы должны решить эту проблему»

8. Номинализация: используйте отглагольные существительные, которые кратко выражают процесс.

«Люди могут прийти к новому пониманию»

«Вы можете отложить свое расслабление»

Совет

9. Неопределённый глагол: используйте выражения, описывающие результат действия, но не раскрывающие причину

«Он создал эту проблему»

«Но вы можете, я знаю!»

10. Вопрос на конце фразы: используйте фразы, сочетающие утверждение и вопрос, чтобы у вашего собеседника создалось впечатление, что он является автором утверждения.

«Ваше восприятие жизни меняется, так ведь?»

«Вы решили продолжить обучение, не так ли?»

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

«Люди могут меняться»

«Дверь была выбита»

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

«Вы получите больше удовольствие от этого»

«Это лучше»

13. Присоединяйтесь к текущему опыту: описывайте текущие действия и ощущения собеседника, как бы присоединяясь к ним

«Вы читаете эту статью»

«Вы сейчас сидите в этом кресле и слушаете мои слова»

14. Двойная связка: предлагайте сделать выбор, когда его может и не быть или результат всех вариантов будет одинаков.

«Вы хотите начать сейчас или позднее?»

«Вы хотите войти в состояние транса перед тем, как вы присядете, или после того, как вы присядете?»

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

«Вы думаете, что эту статью нужно отослать вашим друзьям?»

«Вы можете без труда выучить этот материал»

16. Разговорные постулаты: используйте многозначные вопросы, которые подразумевают однозначный ответ (да или нет), но призывают предпринять действие; можете сопровождать их внедрёнными командами.

«Можете ли вы открыть дверь?»

«Можете ли вы измениться?»

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

17. Расширенные цитаты: используйте отвлечённый контекст для сообщения информации, которая может содержать в себе побуждение или команду.

«Я помню, что много лет назад я встречался со старым мудрецом, который научил меня многим полезным вещам. Я храню в памяти его советы. В частности, я помню, как однажды он сказал мне, что ‘перемены – это легко и забавно’»

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

«Ваш стул может поддержать вас во время того, как вы совершаете эти изменения»

«Ваш дневник рассказывает интересные истории»

19. Неясность: говорите неопределённо и многозначно.

  • a) Фонетическая неопределённость: слова, звучащие похоже, но имеющие разный смысл, такие как 'правильно/правило', 'украсть/украсить' и т.д.
  • б) Синтаксическая неопределённость: сложная структура предложения, делающая неясной связь слов в нем, например «Люди, помогите убрать мусор дворнику, который накопился»
  • в) Неопределённость масштаба: неясно, в какой степени деепричастие, глагол или прилагательное относится к предложению, например «Мы пойдем туда вместе с этим очаровательным человеком и его женой»
  • г) Неопределённость пунктуации: соединение частей предложения таким образом, что возникает двусмысленность, например «И мы думаем вы с нами согласитесь просто это будет или тяжело отказать ведь можно всегда»

20. Использование: используйте всё, что переживает клиент (снаружи и внутри себя), для усиления правдивости своих слов и убеждения клиента.

«Вы говорите, что не понимаете. Всё верно… вы не понимаете, хотя это происходит из-за того, что вы не сделали глубокий вдох, который откроет дорогу информации»

«И этот мерцающий свет, и эти прерывистые звуки, всё говорит о том, что …»

Использованный источник:  NLP Center

Паттерны ООП с примерами и описанием

Паттерн соотнесение, или подстройка под модель мира другого

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

Singleton (одиночка)

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

class Singleton
{ private static $instance = null; private function __construct(){ /* … @return Singleton */ } // Защищаем от создания через new Singleton private function __clone() { /* … @return Singleton */ } // Защищаем от создания через клонирование private function __wakeup() { /* … @return Singleton */ } // Защищаем от создания через unserialize public static function getInstance() { if (is_null(self::$instance)) { self::$instance = new self; } return self::$instance; }
}

Registry (реестр, журнал записей)

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

class Registry
{ private $registry = array(); public function set($key, $object) { $this->registry[$key] = $object; } public function get($key) { return $this->registry[$key]; }
}

Singleton Registry (одинокий реестр) — не путайте с Registry Singleton (реестр одиночек)

«Реестр» нередко является «одиночкой», однако это не всегда должно быть именно так. Например мы можем заводить в бухгалтерии несколько журналов, в одном работники от «А» до «М», в другом от «Н» до «Я». Каждый такой журнал будет «реестром», но не «одиночкой», потому как журналов уже 2.

class SingletonRegistry
{ private static $instance = null; private $registry = array(); private function __construct(){ /* … @return Singleton */ } // Защищаем от создания через new Singleton private function __clone() { /* … @return Singleton */ } // Защищаем от создания через клонирование private function __wakeup() { /* … @return Singleton */ } // Защищаем от создания через unserialize public static function getInstance() { if (is_null(self::$instance)) { self::$instance = new self; } return self::$instance; } public function set($key, $object) { $this->registry[$key] = $object; } public function get($key) { return $this->registry[$key]; }
}

Multiton (пул «одиночек») или другими словами Registry Singleton (реестр одиночек) — не путайте с Singleton Registry (одинокий реестр)

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

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

class Database
{ private static $instances = array(); private function __construct() { } private function __clone() { } public static function getInstance($key) { if(!array_key_exists($key, self::$instances)) { self::$instances[$key] = new self(); } return self::$instances[$key]; }
} $master = Database::getInstance('master');
var_dump($master); // object(Database)#1 (0) { } $logger = Database::getInstance('logger');
var_dump($logger); // object(Database)#2 (0) { } $masterDupe = Database::getInstance('master');
var_dump($masterDupe); // object(Database)#1 (0) { } // Fatal error: Call to private Database::__construct() from invalid context
$dbFatalError = new Database(); // PHP Fatal error: Call to private Database::__clone()
$dbCloneError = clone $masterDupe;

Object pool (пул объектов)

По сути данный паттерн является «реестром», который хранит только объекты, никаких строк, массивов и т.п. типов данных.

Factory (фабрика)

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

Вы просто говорите «дай мне пакет апельсинового сока», а «фабрика» возвращает вам требуемый пакет. Как? Всё это решает сама фабрика, например «копирует» уже существующий эталон.

Важно

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

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

abstract class AnimalAbstract { protected $species; public function getSpecies() { return $this->species; }
} class Cat extends AnimalAbstract { protected $species = 'cat';
} class Dog extends AnimalAbstract { protected $species = 'dog';
} class AnimalFactory { public static function factory($animal) { switch ($animal) { case 'cat': $obj = new Cat(); break; case 'dog': $obj = new Dog(); break; default: throw new Exception(«Animal factory could not create animal of species '» . $animal . «'», 1000); } return $obj; }
} $cat = AnimalFactory::factory('cat'); // object(Cat)#1
echo $cat->getSpecies(); // cat $dog = AnimalFactory::factory('dog'); // object(Dog)#1
echo $dog->getSpecies(); // dog $hippo = AnimalFactory::factory('hippopotamus'); // This will throw an Exception

Хочется обратить внимание, что метод factory также представляет собой паттерн, его называют Factory method (фабричный метод).

Builder (строитель)

Итак, мы уже поняли, что «Фабрика» — это автомат по продаже напитков, в нем уже есть всё готовое, а Вы только говорите что вам нужно. «Строитель» — это завод, который производит эти напитки и содержит в себе все сложные операции и может собирать сложные объекты из более простых (упаковка, этикетка, вода, ароматизаторы и т.п.) в зависимости от запроса.

class Bottle
{ public $name; public $liters;
} /** * все строители должны */
interface BottleBuilderInterface
{ public function setName(); public function setLiters(); public function getResult();
} class CocaColaBuilder implements BottleBuilderInterface
{ private $bottle; public function __construct() { $this->bottle = new Bottle(); } public function setName($value) { $this->bottle->name = $value; } public function setLiters($value) { $this->bottle->liters = $value; } public function getResult() { return $this->bottle; }
}
$juice = new CocaColaBuilder();
$juice->setName('Coca-Cola Light');
$juice->setLiters(2);
$juice->getResult();

Prototype (прототип)

Напоминая «фабрику», он также служит для создания объектов, однако с немного другим подходом. Представьте себя в баре, Вы пили пиво и оно у Вас закончивается, Вы говорите бармену — сделай мне еще одно такое же. Бармен в свою очередь смотрит на пиво, которое Вы пьете и делает копию, как Вы попросили. В php уже есть реализация такого паттерна, она называется clone.

$newJuice = clone $juice;

Lazy initialization (отложенная инициализация)

Например, начальник видит список отчетов по разным видам деятельности и думает, что эти отчеты уже есть, но на самом выводятся только названия отчетов, а сами отчеты еще не сформированы, и будут формироваться только по приказу (например по нажатию кнопки Просмотреть отчет). Частный случай ленивой инициализации — создание объекта в момент обращения к нему. На википедии можно найти интересный, но не совсем правильный пример, т.к. согласно теории, правильным примером в php будет например функция __autoload

Adapter или Wrapper (адаптер, обертка)

Данный паттерн полностью соответствует своему названию. Чтобы заставить работать «советскую» вилку через евро-розетку требуется переходник. Именно это и делает «адаптер», — служит промежуточным объектом между двумя другими, которые не могут работать напрямую друг с другом. Не смотря на определение, в практике я все же вижу разницу между Adapter и Wrapper.

class MyClass { public function methodA() {} } class MyClassWrapper { public function __construct(){ $this->myClass = new MyClass(); } public function __call($name, $arguments){ Log::info(«You are about to call $name method.»); return call_user_func_array(array($this->myClass, $name), $arguments); }
}
$obj = new MyClassWrapper();
$obj->methodA();

Dependency injection (внедрение зависимости)

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

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

Class AppleJuice {} // этот метод представляет собой примитивную реализацию паттерна Dependency injection и дальше Вы в этом убедитесь
function getBottleJuice(){ $obj = new AppleJuice; // проверим объект, а то вдруг нам подсунули пиво (пиво ведь не сок) if($obj instanceof AppleJuice){ return $obj; }
} $bottleJuice = getBottleJuice();Совет

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

Class AppleJuice {}
Class OrangeJuice {} // этот метод реализовывает Dependency injection
function getBottleJuice(){ $obj = new OrangeJuice; // проверим объект, а то вдруг нам подсунули пиво (пиво ведь не сок) if($obj instanceof OrangeJuice){ return $obj; }
}

Как видите, нам пришлось изменить не только вид сока, но и проверку на вид сока, не очень то удобно. Гораздо правильнее использовать принцип Dependency inversion:

Interface Juice {}
Class AppleJuice implements Juice {}
Class OrangeJuice implements Juice {} function getBottleJuice(){ $obj = new OrangeJuice; // проверим объект, а то вдруг нам подсунули пиво (пиво ведь не сок) if($obj instanceof Juice){ return $obj; }
}

Dependency inversion иногда путают с Dependency injection, но путать их не нужно, т.к. Dependency inversion это принцип, а не паттерн.

Service Locator (локатор служб)

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

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

В свою очередь службы реализуют интерфейс «Доставить на ».

Если говорить о реальной жизни, то наверное хорошим примером Service Locator-а может быть php-расширение PDO, т.к. сегодня мы работаем с базой данных MySQL, а завтра можем работать с PostgreSQL. Как Вы уже поняли, нашему классу не важно в какую базу данных отправлять свои данные, важно, что он может это делать.

$db = new PDO('mysql:dbname=test;host=localhost', $user, $pass);
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);

Отличие Dependency injection от Service Locator

Если Вы еще не заметили, то хочется пояснить. Dependency injection в результате возвращает не сервис (которым можно что-то куда-то доставить) а объект, данные которого использует. 

Читать

Паттерн соотнесение, или подстройка под модель мира другого

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

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

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

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

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

Вот уже четыре года мы слышали восторженные отзывы о работе доктора Милтона X. Эриксона из Финикса, штат Аризона, известнейшего в мире гипнотерапевта, читали о нем и пытались изучить его методы.

Мы заинтересовались работой доктора Эриксона, когда проходили обучение у Ричарда Бэндлера и Джона Гриндера (благодаря содействию которых столь эффективные гипнотические паттерны Милтона Эриксона стали доступны другим людям); словно стервятники, слетевшиеся на добычу, мы жадно проглатывали все печатные труды Эриксона, какие только могли раздобыть.

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

Мы беззастенчиво воспевали его техники и проницательность перед всеми, кто только готов был нас слушать, и наверняка во время этих проповедей глаза у нас сияли искренним энтузиазмом, а руки тряслись от восторга. Вот уже несколько лет мы разговаривали, ели, пили и спали с именем Эриксона в мыслях. Он стал членом нашей семьи. Честно говоря, мы даже подражали его голосу.

И при этом до сих пор мы ни разу не ВСТРЕЧАЛИСЬ с этим человеком! И вот завтра мы наконец встретимся с Милтоном Эриксоном, и все наши прошлые подражания и проповеди будут оправданы греющей самолюбие индульгенцией личного контакта. «Доктор Эриксон? Ну конечно, мы знаем… старину Милтона…

» Но только ли это означала для нас предстоящая встреча? До нее еще оставалось несколько часов, и пока что можно привольно предаваться мечтам, попутно освежая пятки, — спасибо продукции компании Феддерс, производящей кондиционеры… Но даже сквозь фильтры ветер пустыни доносил до нас что-то такое… нечто, к чему мы вряд ли были готовы.

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

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

Важно

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

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

Двор как бы говорил: «Идите сюда прямо по этому газону, для того он здесь и устроен». Подталкивая друг друга, мы робко приблизились к входной двери, где нас радушно встретила миссис Эриксон. Она проводила нас в кабинет доктора Эриксона.

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

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

И вот дверь отворяется. Миссис Эриксон вкатывает кресло доктора Эриксона. Вне всяких сомнений, он — единственный в этой комнате, кто не затаил в этот момент дыхание. Он одет во все лиловое, а на шее повязан шнурок, унизанный лиловыми ракушками каури.

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

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

Совет

Все наши штудии и приготовления теперь казались пустячной суетой, и вот, избавившись от бремени ожиданий, мы расселись по креслам и приготовились к настоящему уроку. Доктор Милтон Эриксон вдел нитку в иголку и принялся вышивать…

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

Не найдется двух людей, которые бы одинаково поняли одну и туже фразу, а потому при взаимодействии с людьми нечего и думать уложить их в русло ваших представлений о том, какими они должны быть… Надо постараться выявить, каковы ИХ СОБСТВЕННЫЕ представления о себе.

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

А теперь передайте-ка мне вон того северного оленя… Дэн Гоулмен сказал, что это простое стеклянное пресс-папье. Он не заметил, что мой олень вмерз в айсберг… Так вот,

ЯЗЫК — это не только то, что мы ГОВОРИМ. Дельфины могут с целью коммуникации изменять положение своего тела, придавать своему телу различные формы, — так они передают или получают сообщения. То же самое делают и люди… Вот вам, к примеру, такая ситуация. Наша дочь жила на военно-воздушной базе в Окинаве, она жена полковника.

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

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

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

Добираться до нее придется пешком или на автобусе. Абсолютно добровольно. Но моя дочь пояснила, что преподает в этой школе и НЕ позволит никому мешать ей вести занятия… она будет исключать всех, кто станет ей мешать, — на день, на неделю или навсегда. Она установила и ДРУГИЕ правила. «Это ВАША школа. ВЫ ею управляете.

Я здесь только преподаю».

Словарный запас: ПАТТЕРН

Паттерн соотнесение, или подстройка под модель мира другого

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

ЧТО НАПИСАНО В СЛОВАРЕ

«Паттерн (англ. pattern — от лат. patronus) — систематически повторяющийся, устойчивый элемент (фрагмент) или последовательность элементов (фрагментов)». (Универсальный дополнительный практический толковый словарь. И. Мостицкий)

ЧТО ГОВОРЯТ ЭКСПЕРТЫ

Света Герасимова, дизайнер по тканям, призёр выставки St. Petersburg Design Week 2013

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

Сейчас мы готовим его на компьютере и отсылаем в печать. Элемент должен строго повторяться, и за этим в основном следит производство. Раньше от руки отрисовывался один элемент и штампом, набойкой набивался на ткань. Затем появились шёлковые и капроновые сетчатые шаблоны (сетки). C их помощью печатают павловопосадские платки, и с ними работают многие компании, в том числе Hermès и Marimekko.

Когда я только начинала работать с тканями, испробовала все виды печати и собрала целую коллекцию набоек из Индии. Кстати, всем известный элемент „огурцы“ первым появился в Персии и только потом стал распространён в Индии. Оттуда он попал в Европу, которую покорил благодаря британским текстильщикам.

„Огурцы“ уже стали настоящей классикой, которую деформируют под себя модные и новомодные дома, визитной карточкой Etro. Так что, хотя в fashion-мире всё размыто, можно проследить по цвету и форме, где появился узор».

Дмитрий Тестов, аспирант сектора аналитической антропологии Института философии РАН

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

В культурную антропологию понятие паттерна ввела Рут Бенедикт (1887-1948).

Она писала, что сопоставление культур на основании отдельных признаков, таких как культ солнца, кросскузенный брак (характерный для раннеклассового общества брак с дочерью брата матери или сестры отца. — Прим. ред.) или счёт родства по материнской линии, не имеет смысла.

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

Однако по-настоящему строгую теоретическую разработку понятие паттерна получило в работах Грегори Бейтсона (1904-1980).

Важно

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

То есть если наблюдатель может разглядеть закономерность, то сможет и достроить недостающие элементы.

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

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

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

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

ПРИМЕРЫ УПОТРЕБЛЕНИЯ

ТАК ГОВОРИТЬ ПРАВИЛЬНО

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

«На мой взгляд, слово „паттерн“ давно стало общеупотребительным, и в русском языке есть слова, которые могут служить синонимами: „шаблон“, „стереотип“, „образец“, „модель“ — вполне подходят». (Дмитрий Тестов)

ТАК ГОВОРИТЬ НЕПРАВИЛЬНО

«Нельзя назвать паттерном вещь, которая его содержит. Следует помнить, что паттерн — это абстрактная схема, которую разум извлекает из вещи. Можно сказать, что живые организмы в каком-то смысле „имеют в виду“ эти абстрактные схемы, однако они уникальны и никогда не воплощают их в совершенстве». (Дмитрий Тестов)

Раппорт или подстройка под собеседника отзеркаливание

Паттерн соотнесение, или подстройка под модель мира другого

06 января

Как вызывать доверие и достигать понимания в общении с людьми.

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

Объясняю по-русски.

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

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

Его отношение к вам, и к тому что вы говорите, можно описать двумя группами критериев:

Доверие

Внимание

Согласие

Открытость

Готовность учиться

Удивление

Радость

Принятие

Сомнение

Отвлеченность

Спор

Скрытость

Желание научить

Презрение

Опасение

Отторжение

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

Иногда, нам встречаются они, иногда другие.

До изучения НЛП, мы говорили в обоих случаях примерно так – ну, такой он человек, что поделать/и это прекрасно.

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

Попался нам клиент из второй категории – он такой, что поделать.

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

Мы не управляли этим никак. Хотя я не настаиваю.

Позволим себе маленькое отступление в нейрофизиологию.

Наш мозг просто усыпан особыми клетками, которые называются – зеркальные нейроны.

Что же они зеркалят?

Совет

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

Например, камень, которым можно колоть орехи.

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

Для того, чтобы научиться этому у другого, надо в точности повторить его поведение.

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

Сегодня, у зеркальных нейронов человека есть еще две функции:

1 Сопереживание – это способность чувствовать то, что происходит с другим человеком.

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

2 Угадывание намерения – это способность по некоторым элементам поведения понять, что дальше будет делать человек.

Если он рядом с кучей дров, схватил топор – скорее всего, будет рубить.

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

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

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

Теперь вернемся к нашим знакомым из двух колонок.

У каждого человека есть уникальная модель мира.

Это свод правил и законов этого мира, с которыми человек согласен и верит в их истинность.

В НЛП это называется карта.

В карте есть все, что мы знаем и думаем о себе, других людях и мире в котором живем.

Карта одного человека, сильно отличается от карты другого. Но есть в них и сходства.

Один из них любит гулять в пасмурную погоду, другой не любит.

Но оба верят в жизнь на марсе.

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

Если же мы увидели различия – появляются элементы второй.

Комплекс состояний и условий восприятия, описанный в первой колонке — называется Раппорт.

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

И это вызывало раппорт.

Наблюдая за ними, создатели НЛП заметили эту хитрость и тщательно изучили этот процесс.

Процесс, намеренной демонстрации схожести с собеседником — назвали подстройкой.

Если подстроиться к собеседнику – наступит раппорт, и он начнет доверять нам,

Важно

станет соглашаться, принимать в дальнейшем какие-то наши идеи, даже если раньше отрицал их.

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

которые мы ему сообщаем, и он будет готов расширить свою карту – научиться у нас чему-то.

У вас есть случаи в прошлом, когда вы от доверенного человека услышали что-то

вроде – на самом деле … И после этого стали верить что это так.

Дело в том, что все процессы в нашем мозге двунаправленны.

Если нам весело, мы улыбаемся.

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

Этой хитростью и пользуются профессионалы.

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

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

Прекрасная новость. Осталось разобраться с тем, как можно подстраиваться, и мы на коне. В общении с любым собеседником, его состояние доверия или недоверия, зависит теперь от нашего поведения.

Подстраиваться можно к поведению, а можно к речи. Рассмотрим основные виды подстройки.

Подстройка к положению тела отзеркаливание

Если ваш собеседник сидит скрестив ноги, и вы тоже скрещиваете ноги – это подстройка.

Делать это надо незаметно. По этому, даю рекомендацию.

* Меняйте положение тела в тот момент, когда начинаете говорить.

Это выглядит естественно. Появилась словесная активность, появилась и активность в теле.

Если он стоит, рука опирается на стол, сделайте также, и это будет подстройкой.

Подстройка к голосу

Подстраиваться можно к скорости, громкости и высоте.

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

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

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

Совет

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

* Если голос быстрый, сядьте ровно или откиньтесь на спинку стула, если медленный – упритесь локтями в бедра. Так будет легче управлять скоростью.

Подстройка к системам восприятия

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

Визуальную, аудиальную или чувственную.

Если ваш собеседник говорит – обратите внимание, какая четкая идея.

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

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

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

Подстройка к убеждениям

Когда человек говорит – гречневая каша – это не вкусно. Он высказывает убеждение.

Если мы согласимся с ним – это будет подстройка.

Немного ниже я опишу, как можно по-разному выражать согласие.

— Погода сегодня так себе.

— Согласен.

Поделиться новостью