Eu tenho um objeto Conta e uma coleção de objetos Movimento que são a agregação do cliente onde ambos são CRUD.
A minha dúvida é onde eu coloco os métodos de inserção/atualização/deleção do Movimento!?!
Eu ia colocar na MovimentoDAO, mas na hora de colocar os parâmetros eu achei meio estranho, pq eu tinha q passar o Movimento e a Conta tb.
Essa é realmente a melhor abordagem a se fazer. Uma boa prática é vc gerar uma DAO para cada uma das suas entidades persistentes, fora que, no seu caso, não há como instanciar um Movimento sem ter uma conta associada a ele, logo, não fica nada estranho vc passar a conta como parâmetro das suas operações.
Caso a sua relação seja de um movimento têm uma conta (já que uma conta tem vários movimentos), então seria interessante vc passar apenas a “chave primária” do objeto Conta, para realizar as operações de persistência na MovimentoDAO.
Caso a sua relação seja de vários movimentos para várias contas, então seria interessante vc criar um outro tipo de DAO, que represente essa relação entre os dois, onde vc passaria a “chave primária” desses dois objetos para realizar as operações de persistência. Aì no seu ContaDAO e MovimentoDAO vc teria apenas operações pertinentes a os objetos Conta e Movimento, sem recebimento de parâmetros de outras classes.
Precisa ver qual seu mapeamento e analisar a melhor solução pra vc…
se o objeto conta for o dono do relacionamento, que ao meu ver seria, então ele será eleito a possuir estes métodos de controle.
lembre-se ele jamais deverá setar na lista de movimentações, para isto modifique a visibilidade do método set para protected.