Проблема дизайна со швом - PullRequest
       5

Проблема дизайна со швом

2 голосов
/ 25 ноября 2010

У меня есть умная программа, которая предоставила файл, содержащий очень специфические метаданные базы данных, для меня в eclipse генерируется целый проект. Он использует hibernate для доступа к базе данных и обеспечивает базовую функциональность crud, а также предоставляет интерфейс xhtml.

Все это прекрасно работает, и практически все можно сделать, если требуются простые операции. Однако, конечно, я ожидаю, что рано или поздно мне понадобится изменить этот проект, чтобы добиться определенного индивидуального поведения.

Я мог бы просто изменить проект и никогда не оглядываться назад, но я бы потерял огромное преимущество, связанное с возможностью регенерировать проект для добавления новых таблиц и поведения. Хотя я мог бы создать новый проект со своими изменениями и применить эти изменения вручную, я бы предпочел не делать это для каждого изменения, которое мне нужно сделать.

К сожалению, инструмент, который генерирует этот проект, не может быть затронут (по причинам, что это не наш инструмент, а инструмент сторонней софтверной компании, которая производит шаблоны проектов).

Я заметил, что он активно использует платформу Seam для создания экземпляров сгенерированных классов (используя @In(create = true)). Можно ли как-нибудь расширить сгенерированный класс так, чтобы регенерирование существующих классов не отменяло мои изменения, но вместо этого создавались экземпляры этих расширенных классов?

Есть ли какая-то стратегия, которую я могу использовать, чтобы минимизировать изменение сгенерированных классов (идеальный случай - изменить поведение, просто добавив файлы в проект, хотя я понимаю, что это невозможно для файлов xhtml)? Буду признателен за любую помощь, хотя я понимаю, что некоторые изменения должны быть внесены в инструмент, прежде чем это станет возможным (например, фабрика?).

1 Ответ

1 голос
/ 31 января 2011

Для меня это тоже звучит как seam-gen. Это может помочь вам: http://seamframework.org/Community/ModifyingSeamgen

Мне не нравится шов. Это быстрый инструмент с ценой. Посмотреть это сообщение http://shervinasgari.blogspot.com/2010/10/why-you-should-not-use-seam-application.html

Я люблю Seam, но я не использую / не люблю seam-gen. seam-gen не подходит для реальных приложений.

Кроме этого:

@In(create=true) BeanClass beanName

внедряет компонент с именем "beanName" и типом BeanClass из некоторого контекста. Если этот бин еще не существует, он будет создан (потому что create = true). Если он существует в каком-либо контексте (страница, запрос, сеанс, приложение, рабочий процесс и т. Д.), Он будет найден и введен в свойство beanName.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...