Reestruturação do Sistema Módulo Transação

Pessoal,
Estou reestruturando um sistema aqui da empresa, e existe um módulo critico a qual eu acho que está muito mal estruturado e pretendo mudá-lo. E estou na dúvida de qual modelo seguir.

Primeiramente vou falar qual a situação atual de um dos módulos, e duas soluções possíveis.

Hoje o sistema, trabalhar com cerca de 5 tipos de transações. Existe um bean para cada transação, e apenas uma tabela no banco de dados para essas transações.

[b]* Os beans tem vários atributos incomum;

  • A tabela de transação tem todos os parâmetros de todas as transações;
  • No DAOTransacao existe um método de insert para cada tipo de transação (mas é para a mesma tabela);[/b]

Solução 1
Tratar todos com 1 bean só e fazer apenas uma classe de transação

Solução 2

Criar uma classe abstrata Transação com todos os atributos incomum, e estender ela a partir de cada transação. (não gosto muito desta idéia).

Eu prefiro tratar tudo como uma única transação, pois no modelo do banco ele é único. Acho que fica ?menos pior? do que está, pois essa situação está gerando muito problema no desenvolvimento de novas features.

Eu sei, existem muitas outras soluções melhores, porém existe a necessidade da alteração da estrutura do banco de dados, a qual agora não é possível.

Obs: não sou o culpado pelo estado atual…rsrsrs

Abraços…

É difícil dizer sem conhecer a fundo o problema…
Mas olhando por alto, quando você diz que são cinco “transações” para a mesma tabela, sou levado a crer que são cinco operações possíveis para um mesmo objeto de domínio ou cinco transações para o mesmo contexto.
Se este meu raciocínio estiver certo, te aconselho a agrupar as operações em um só lugar.
Claro que estou falando sem conhecer a sua realidade, tome cuidado pra não fazer uma classe ultraMagaMasterBlasterMonstruosa com um monte de código ilegível, tente dividir as coisas em camadas diferentes quando possível…

É isso aí :wink:

Então, não detalhei muito, mas é mais ou menos isso, existe um domínio e várias business que utilizam essas transações, se unificar como um único objeto, será muito mais fácil. Cada business faz a sua transação normalmente mas o model será único, (já que é único no banco de dados, mas seperado no Java, o que gera muita confusão)…

Vlw pela opnião…

Abraços…