"Я должен разработать объект уровня представления для параметров из формы поиска", - подумал он, - "а также объект сервисного уровня для каждой строки, возвращаемой в процессе поиска. Но эти объекты должны иметь те же атрибуты, что и объект
МешокРиса
, который сейчас используется для создания новых строк таблицы. Не могу ли я просто переиспользовать объект уровня базы данных для обеих целей?"С растущим волнением он подумал: "Если бы объект уровня базы данных был бы аннотирован соответствующим образом, я бы мог разработать фреймворк, получающий форму ввода данных, проверяющий её, преобразующий в SQL, делающий запрос в базу данных и предсталяющий пользователю результаты поиска в табличном формате... всё это потребует самых минимальных усилий со стороны пользователя!"
Так, в течение следующих нескольких дней монах счастливо разрабатывал фреймворк, используя страницу поиска
МешокРиса
в качестве доказательства правильности концепции.В конце недели Джишин с гордостью показал плоды своего труда учителю Банзену. Учитель изучил фреймворк, кивнул и приказал Джишину переделать семь существующих страниц поиска в приложении, начиная со страницы
Воин
, таким образом, чтобы все они использовали новый фреймворк.После того, как монах побежал выполнять задание, к Банзену подошла монахиня, стоявшая неподалеку.
"Учитель", - спросила монахиня, - "Объект
Воин
содержит единственное значение состояния. Если пользовательский запрос будет представлен одним объектом Воин
, то как мы сможем запросить всех воинов, состояние которых либо пропал без вести, либо в отставке, либо мёртв?""Никак", - сказал Банзен.
"Кроме того", - продолжила монахиня, - "Объект
Воин
содержит только информацию, хранящуюся в таблице Воин
. Как же мы сможем найти воинов по типу оружия, которое они они используют, или по названию полка, в котором они служили, ведь это требует присоединения дочерних таблиц?""Никак", - сказал Банзен.
Учитель взял из банки, стоявшей на его столе, небольшой тёмный кусок и передал его озадаченной монахине. "Жил когда-то монах, который устал от риса. Однажды он наткнулся на искусство создания куро сато - чёрных леденцов. Каждый день в течение многих лет он грыз кусок за куском, постепенно становясь дряблым, бледным и с дырявыми зубами. В чём заключается ошибка его учителя?"
"Не смог запретить конфеты", - сказала монахиня.
Банзен покачал головой и толкнул тяжелую банку через стол.
"Съешь их до завтрашнего вечера", - приказал Банзен, - "и тогда поймёшь суть наказания Джишина".
Original: Sweet Tooth