В настоящее время я портирую массивное старое приложение Oracle Forms на JSF, и мне нужно принять решение по модели предметной области.
Я заблокирован для использования шаблонов Spring JDBC (без ORM) и использования уровня DAO для решения проблем с устаревшей схемой базы данных, которая должна была быть разработана кооперативами 1-го года.Для модели предметной области я действительно хотел бы сделать вещи в высшей степени OO, например: предположим, что существует объектный план Plan.Цель была бы слишком высокой, если бы она могла выполнять PlanInstance.load (byId ("12345")), PlanInstance.save (), .delete (), .create () и т. Д. И т. Д., Но затем возникает ситуация;поскольку эти доменные объекты содержат ссылки на bean-компоненты с состоянием (например, хранилища), они не могут быть сериализованы.Как можно преодолеть это?
Первоначально я начал разделять такие вещи, как: PlanData (Statefull, SessionScoped), который используется PlanManager (Stateless, Singleton).Таким образом, код общего контроллера извлекается и не допускается дублирование в каждом bean-объекте области сеанса, и, что наиболее важно, позволяет сериализовать bean-объекты области видимости.
На данный момент мне действительно нужно структурировать его в стиле OOсвести к минимуму сложность, но я просто не знаю, как я могу иметь объект в области видимости сеанса, когда он имеет ссылки на объекты с состоянием (из-за ошибок сериализации).
Единственная возможность, о которой я могу думать, - это сделать переходы с сохранением состояния транзитными и разработать какой-то механизм для повторного внедрения зависимостей, когда бин не сериализован.Может ли кто-нибудь дать мне какое-либо понимание путей решения этой дилеммы?Должен быть какой-то шаблон / практика, которая решает, что я, вероятно, просто упускаю.