[Из песочницы] Проектирование на основе «отражения»

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

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

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

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

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

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

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


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


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

© Habrahabr.ru