Объяснение без кода по аналогии (~ 5 мин)
Если вам не нравятся истории, то спасите себя (~ 5 минут)
Думайте об этом так:
Все более или менее одинаковы
Люди имеют много информации, связанной с ними. Бесчисленные сотни и тысячи данных связаны с вами -
Какую проблему мы хотим решить?
Мы хотим быть в состоянии дать прямые ответы людям, которые спрашивают нас о себе.
- Минимизировать объем памяти
Итак, вопрос в том: как вы можете запомнить все это? Ну, изначально люди начали записывать все эти вещи, но вскоре они поняли, что им нужно будет нести около 10 томов желтых страниц - в основном всю библиотеку Александрии (в печатном виде) в своем заднем кармане, чтобы иметь возможность ответь на все эти вопросы: это слишком много вещей, чтобы тащить с собой.
Решение: хранить общую информацию в одном месте
Так что у кого-то была блестящая идея. Они заметили, что большую часть времени информация одинакова. например Большинство людей имеют:
одно сердце
одно лицо и т. Д.
три гена BRCA2
Нет необходимости, чтобы каждый человек нес около 30 фунтов бумаги в заднем кармане. Вы можете хранить всю эту информацию в одном месте , в одной центральной библиотеке. Люди могут свободно ходить, не обременяя себя тем, что несут эту информацию.
Но всегда есть исключения ... не у всех одинаковая группа крови или одинаковое количество волосяных фолликулов на голове. Если есть различия или исключения из нормы, то вы просто носите эти исключения с собой в заднем кармане, а не на книжной полке. Помните, что по большей части люди очень похожи - они разделяют одни и те же ценности, и это редко меняется. Если у вас нет записанных исключений в вашем заднем кармане, вы можете просто направить интервьюера к данным, хранящимся в общем хранилище.
Пример: репортер берет интервью у президента Дональда Трампа **
Давайте попробуем это на примере.
У нас есть экземпляр Person: Дональд Трамп. Репортер новостей задает нашему уважаемому Президенту несколько вопросов:
«Господин Президент Трамп, сколько у вас генов HIF1A?»
Дон проверяет свой задний карман. Там ничего не указано о том, сколько у него генов. Поэтому он просто говорит репортеру, что у него есть номер по умолчанию, который есть у всех остальных. «Так же, как и все», - говорит Трамп. «Вы можете найти свой ответ в библиотеке». Таким образом, репортер просто идет в библиотеку, чтобы узнать об этой конкретной детали.
«Господин Президент Трамп, сколько у вас лиц?
Может ли это значение быть разрешено локально? Похоже, это значение определяется локально, потому что в заднем кармане Трампа лежит ответ: 2 - который быстро возвращается репортеру.
Значение разрешения по дереву
Чтобы упростить это, все решается сначала с человеком, а затем вверх, в библиотеку, и если информация там не содержится, то вопрос переходит к более высокому авторитету: либо Бог, либо монстр-спагетти как дело может быть. В конце концов, вы продолжаете идти все выше и выше, пока не получите ответ. В конце концов, все ответы будут решены.
Другая особенность свойств зависимости: значения, зависящие от других значений
Это означает, чтоОтвет, который г-н През дает репортеру, который задает ему вопрос, зависит от того, что говорит кто-то еще. Например, если репортер спрашивает г-на Преза, является ли он хорошим президентом, то предоставленный ответ может полностью зависеть от другого имущества.
Резюме
Короче говоря, свойство зависимости - это свойство, которое разрешается либо локально, либо вверх по дереву пользовательского интерфейса в зависимости от обстоятельств. Причина, по которой мы это делаем, заключается в том, что элементы пользовательского интерфейса имеют сотни и сотни свойств, которые в скором времени поглотят вашу память, если вы сохраните их как резервные поля для каждого из них. Поскольку большинство этих полей никогда не изменяются или очень редко изменяются, нет необходимости хранить их в качестве вспомогательных полей, и их значения можно определить, поднявшись по дереву. Конечно, аналогия немного натянута, но я надеюсь, что она будет полезна (и, самое главное, запоминаема) кому-то.
** Все еще жду на (огненной) стене Трамп обещал. Нужно не пускать спамцев.