Что интересно, идентификаторы по спеке могут начинаться со знака доллара, хотя на практике валидность первого символа идентификатора проверяется с помощью Character.isJavaIdentifierStart(char)
который уже не ограничивается долларом, а валидно обрабатывает многие валюты (евро, йена, шекель и т.д.).
тьфублин, листья проморгал. сорри
Если полностью закончить выделение класса — вынести children из Menu и инкапсулировать его в отдельный класс, то разделение бизнес логики (Display) и дерева будет полным. (в UML классы разделены, а в коде — нет)
Спасибо, интересно. Но вот у шпаргалок в виде кода есть один недостаток — объем. Для паттернов существует гораздо более удобный способ записи — UML + диаграммы взаимодействия. В классическом Design Patterns просто шикарные диаргаммы, одного взгляда на которые сразу понятно как реализовывать.
Однако шпаргалки в виде кода тоже полезны, прежде всего в случае первой встречи с задачей реализовать паттерн.
(подобрал челюсть.) Очень интересно, вот уж EE так EE. В большие продукты не заглядывал, (только начинаю изучать данное направление), а тут подробная статья об архитектуре солидного проекта. Познавательно.
который уже не ограничивается долларом, а валидно обрабатывает многие валюты (евро, йена, шекель и т.д.).
Если полностью закончить выделение класса — вынести children из Menu и инкапсулировать его в отдельный класс, то разделение бизнес логики (Display) и дерева будет полным. (в UML классы разделены, а в коде — нет)
Extract Interface + Extract Class?
btw, А в листьях лучше, наверно, NullObject смотрелся-бы, в виде пустой иммутбл синглтон коллекции.
дабы ексепшены не кидать.
2) заменяем строки 314,320 (drawMapCell $i $j "$LAND_CHAR") на drawMapCell $i $j ${backgroundImage[index]}
3) играем в sexonix
Однако шпаргалки в виде кода тоже полезны, прежде всего в случае первой встречи с задачей реализовать паттерн.