Отчаявшийся Банзен раздобыл у учителя Бавана бутылку жёлтого вина, сразу же ополовинил её и позвал своего ученика Джишина.
Неделю спустя Джишин сообщил о своих достижениях:
"Наша проблема заключается в контекстах сеанса и запроса Java-сервлета, где мы храним данные о состоянии и отображении. Эти контексты являются хэш-таблицами, в качестве значений которых используются объекты, а в качестве ключей - строки по выбору разработчика. Так как каждый разработчик выбирал ключи, не советуясь со своими коллегами, то компонент иногда может менять значения контекста, используемые другим компонентом. И часто на объект совершенно другого типа".
"И каким будет решение?" - спросил Банзен, откупоривая бутылку.
"Я создал общий класс
ContextUtil
с шестидесятью строковыми константами, по одной для каждого контекстного ключа, используемого в приложении", - сказал Джишин с гордостью. - "И для каждого ключа я предоставил пару строго типизированных статических методов для получения или установки значения по этому ключу в нужном контексте"."Похоже на методы свойств", - заметил Банзен.
"Точно!" - сказал Джишин. - "В настоящее время я разрабатываю соглашения по именованию ключей, чтобы каждая подсистема могла иметь свой собственный класс
ContextUtil
, предоставляющий по мере необходимости дополнительные константы и статические методы"."Похоже на подклассы", - заметил Банзен.
"Точно!" - снова сказал Джишин.
"Прекрасно!" - сказал Банзен, осушая стакан. - "Итак, за семь дней, с помощью простых констант и функций, используемых в стандартной хэш-таблице Java, мы изобрели... класс
Object
".Original: Back to Basics