О дизайне-проблема 1:
Я бы хотел зарегистрировать множество обработчиков, которые можно основывать на общем интерфейсе, а затем реализовать конкретное поведение индивидуально. Это хорошо, потому что центральный метод обработки вашего ввода невелик, и вам нужно всего лишь зарегистрировать много синглетов один раз, при инициализации. Недостаток: если вы забудете один, он не будет работать. Поэтому, может быть, вы можете зарегистрировать их автоматически (отражение или что-то подобное).
Кроме того, карта в этом случае лучше, чем Список, потому что (я полагаю) вам не нужна сортировка. Вам нужно сопоставить ключ с поведением, чтобы карта выглядела лучше (хотя даже очень большой набор ключевых слов, вероятно, не будет очень неэффективным, если вы будете придерживаться списка).
О задаче проектирования 2:
Если бы я был вами, я бы использовал реальные шаблоны регулярных выражений. Взгляните на класс java.util.regex.Pattern
. Вы можете изолировать группы и проверить полученные значения. Хотя он не избавляет вас от обработки исключений / ошибок, он очень помогает в сегментации и интерпретации.
Я надеюсь, что у вас есть несколько существующих приложений, ранее выполненных с использованием различных технологий и инфраструктуры. Лучше всего реализовать те с Hibernate и Spring.
Вам нужно что-то простое, но не тривиальное и сложное, но не сложное.
Попробуйте создать систему учета времени или календарь
AppFuse - это приложение Spring & Hibernate, разработанное для использования в качестве каркаса для новых проектов. Установите его, запустите maven, у вас есть рабочий проект, который вы можете изучать, проверять, отлаживать, изменять или добавлять по своему усмотрению. Я работал над парой корпоративных приложений, которые начинались как AppFuse.
Я предлагаю также использовать Appfuse, как и tpdi . Пара деталей:
Вы обнаружите, что копаетесь в документации, но с уже работающим проектом. В Appfuse очень мало "специальных" классов и утилит, освоив его, вы можете в любой момент начать с нуля ... но с ним проще;)