Проектирование на основе «отражения»

в 18:57, , рубрики: Анализ и проектирование систем, визуализация данных, отражение, проектирование, разработка игр, разработка мобильных приложений, управление разработкой

Всем привет. Недавно задался вопросом: «А что, если… ?». В результате родилась вот такая тема-идея: Проектирование на основе «отражения».

Этой самой идеей я и хочу поделиться с Вами в данной публикации.

image

Начнем

Возьмем два зеркала и поставим их друг напротив друга.

image

  1. Зеркало «А» найдет свое отражение в зеркале «Б».
  2. Зеркало «Б» найдет свое отражение в зеркале «А». В зеркале «А» так же найдет свое отражение все, что нашло свое отражение в зеркале «Б».(Аналогично все то, что нашло свое отражение в зеркале «А», найдет свое отражение в зеркале «Б».)

Типы отражений

Разделим отражения на два типа: прямое(обозначается •) и глубинное(обозначается °).

  1. Зеркало «А», отразившись в зеркале «Б» находит в нем свое прямое отражение «•А».
  2. Зеркало «Б», отразившись в зеркале «А» находит свое прямое отражение «•Б». Отражая то, что было отражено в зеркале «Б», зеркало «А» найдет свое глубинное отражение «°А» — в самом себе.

Теперь возьмем четыре зеркала: А, Б, В и Г

image

  1. «А» находит свое прямое отражение «•А» в Б, В и Г.
  2. «Б» находит свое прямое отражение «•Б» в А, В и Г.
  3. «В» находит свое прямое отражение «•В» в А, Б и Г.
  4. «Г» находит свое прямое отражение «•Г» в А, Б, и В.

Повернем зеркало «Б» отражающей стороной к зеркалу «В», а зеркало «Г» отражающей стороной к зеркалу «А».

image

  1. Зеркало «Г» находит свое прямое отражение «•Г» в зеркале «А».
  2. Зеркало «А» находит свое прямое отражение «•А» в зеркале «В». Зеркало «Г» находит свое глубинное отражение «°Г» в зеркале «В».
  3. Зеркало «В» находит свое прямое отражение «•В» в «Б». Зеркало «А» находит свое глубинное отражение «°А» в зеркале «Б». Зеркало «Г» находит свое глубинное отражение «°°Г» в зеркале «Б».

Теперь зеркало «Г» не находит прямые отражения в «В» и «Б», а только глубинные(«°Г» в «В» и «°°Г» в «Б») через зеркало «А». В «Б» находит свое отражение зеркало «В», в котором нашло свое отражение зеркало «А», а в зеркале «А» нашло свое прямое отражение зеркало «Г». Поэтому, если смотреть что у нас в зеркале «Б», мы увидим: «•В», «°А» и «°°Г». А, если мы посмотрим в «В», то увидим: «•А», «°Г» и «•Б» т.к. все работает и в обратную сторону.

Проявление отражений

Теперь давайте представим, что зеркало «В» полупрозрачное и за ним находятся еще три зеркала: Д, Е и Ж. Можно даже сказать, что «В» — некое единое целое, состоящее из нескольких частей. А вместо зеркала «Г» у нас будет ваза с цветами, и теперь «Г» будет находить свое отражение, но сам отражать ничего не будет.

image

На обратной стороне зеркала «В» проявилось то, что нашло в нем свое отражение: «°Г», «•А» и «•Б». Эти проявления найдут свои прямые отражения в Д, Е и Ж.

  1. «°Г» найдет свое прямое отражение «•°Г» в Д, Е и Ж.
  2. «•А» найдет свое прямое отражение «••А» в Д, Е и Ж.
  3. «•Б» найдет свое прямое отражение «••Б» в Д, Е и Ж.

А теперь давайте повернем зеркало «Д» отражающей поверхностью к зеркалу «Е».

image

4. «°Г» найдет свое прямое отражение «•°Г» в зеркале «Е». «•А» найдет свое прямое отражение «••А» в зеркале «Е». «•Б» найдет свое прямое отражение «••Б» в зеркале «Е».

5. «Е» найдет свое прямое отражение «•Е» в зеркале «Д». «°Г» найдет свое глубинное отражение «°°Г» в зеркале «Д». «•А» найдет свое глубинное отражение «°•А» в зеркале «Д».«•Б» найдет свое глубинное отражение «°•Б» в зеркале «Д».

Если запустить этот процесс в обратную сторону, то зеркало «Д» найдет свое прямое отражение «•Д» в зеркале «Е», глубинное отражение «°Д» в «В», далее «°Д» найдет прямое отражение «•°Д» в «А». Ну а в «Г» уже не отразишься, т.к. это не зеркало, а ваза в цветами.

Какое у всего этого практическое применение

Рассмотрим схему, на которой простенько изображено устройство компьютера.

image

Перерисуем ее.

image

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

  1. Устройства ввода взаимодействуют с внутренней памятью.
  2. Внешняя память взаимодействует с внутренней памятью.
  3. Устройства вывода взаимодействуют с внутренней памятью.
  4. Процессор взаимодействует с внутренней памятью.

Рассмотрим отдельно часть Компьютера «Внутренняя Память»(ОЗУ).

image

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

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

  1. Устройства ввода нашли свое прямое отражение «• Устройства ввода» во Внутренней памяти, на основе прямого взаимодействия с Внутренней Памятью. Проявившись в этой системе как «•Устройства ввода» взаимодействуют с Сегментами Внутренней памяти.
  2. «• Внешняя Память» взаимодействует с сегментами Внутренней памяти
  3. «• Устройства вывода» взаимодействуют с сегментами Внутренней памяти.
  4. «• Процессор» взаимодействует с сегментами внутренней памяти

Рассмотрим часть Компьютера – «Процессор».

image

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

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

  1. «° Устройства вывода» взаимодействует с внутренней памятью.
  2. «° Устройство ввода» взаимодействуют с внутренней памятью.
  3. «° Внешняя память» взаимодействует с внутренней памятью.
  4. «• Внутренняя память» взаимодействует с регистром процессора.

На самом деле регистр процессора получает данные из Сегмента Внутренней памяти.

Поэтому можно изобразить так

image
  1. «° Устройство вывода» взаимодействует с сегментом Внутренней памяти. Сам Сегмент(ОЗУ) не является частью данной структуры и не находится в ней. Проявившись в едином целом «Компьютер» как «•Сегмент(ОЗУ)», он нашел прямое отражение «••Сегмент(ОЗУ)» в «процессоре» на основе взаимодействия ОЗУ с процессором.
  2. «° Устройства ввода» взаимодействуют с «••Сегмент(ОЗУ)».
  3. «° Внешняя память» взаимодействует с «••Сегментом(ОЗУ)».
  4. «••Сегмент(ОЗУ)» взаимодействует с регистром процессора. Из одного поступают данные в другое и обратно.
Пример практического применения при разборе Игры

Давайте разберем и спроектируем часть Игры. Этот пример уже несколько отличается от примера с зеркалами.

«Игра» — единое целое, которое состоит из: Персонаж, Ресурсы, Торговец и Шмот. Все перечисленное — отдельные части, но существующие в рамках единого целого.

image

  1. У персонажа может быть шмот.
  2. У персонажа могут быть ресурсы.
  3. У торговца есть шмот.
  4. У торговца есть ресурсы.
  5. Шмот персонажа можно обменять на ресурсы торговца. (Шмот сначала находит свое прямое отражение в персонаже, затем глубинное в торговце и глубинное в ресурсах)
  6. Шмот торговца можно обменять на ресурсы персонажа.

Вспомним полупрозрачное зеркало «В» и рассмотрим как единое целое одну из частей Игры – «Персонаж»

image

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

  1. «• Шмот» может находиться в инвентаре персонажа.
  2. «• Шмот» может находиться в рюкзаке персонажа.
  3. «• Шмот» из инвентаря персонажа можно обменять на «° ресурсы торговца».
  4. «• Шмот» из рюкзака персонажа можно обменять на «° ресурсы торговца».
  5. «• Ресурсы» персонажа отображаются в инвентаре персонажа.
  6. «• Ресурсы» персонажа можно обменять на «° Шмот торговца».

Пойдем еще глубже, в инвентарь

image

  1. «°° Шмот торговца» можно обменять на «•• Ресурсы персонажа». На самом деле в предыдущий раз «° Шмот торговца» не находил свое отражение в Инвентаре, но он находил свое отражение в «•Ресурсы», а «• Ресурсы» нашли свое прямое отражение «••Ресурсы» в «Инвентарь». На основе этого «° Шмот торговца» нашел свое глубинное отражение «°° Шмот торговца» в «Инвентарь».
  2. «••Шмот» в инвентаре(надетый) персонажа влияет на вид изображения персонажа, которое показывается в инвентаре персонажа.
  3. «••Шмот» в инвентаре персонажа можно обменять на «°° Ресурсы Торговца».

Заглянем в «••Шмот»

image

В «••Шмот», свое прямое отражение нашли «Изображение персонажа» и «°° Ресурсы торговца».

«•• Шмот» – это отдельная, существующая сама по себе часть Игры(«Шмот»), которая сначала нашла свое прямое отражение «• Шмот» в части игры – «Персонаж», на основе взаимодействия с этой частью. Затем, будучи частью «Персонажа», не изначальной его частью, а приобретенной, нашедшей свое проявление(на основе взаимодействия с этой частью) — «• Шмот» нашла свое прямое отражение «••Шмот» в изначальных частях «Персонажа»: Инвентарь и Рюкзак.

Там же, в Персонаже и в Инвентаре, •Шмот и ••Шмот взаимодействуют с °Ресурсами торговца и °°Ресурсами торговца.

Обменять Шмот на Ресурсы

Нельзя так просто взять и обменять часть игры «Шмот» на часть игры «Ресурсы». Нельзя так же шмот персонажа поменять на ресурсы персонажа. А вот шмот персонажа обменять на ресурсы торговца можно. То есть эти части сначала должны найти свое отражение в чем-либо и проявиться там, а уже потом быть обменяны при взаимодействии двух частей(Персонаж, Торговец), в которых они нашли свое отражение. Но не стоит зацикливаться на этом моменте.

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

Автор: pavellyzhin

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js