Como fazer isso com orientação a objeto?

galera
estou com uma dúvida aqui
Meu domínio de problema é o seguinte:

eu tenho concursos, que podem ter diversas fases (1ª fase, 2ª fase, etc)
eu preciso listar as fases de um determinado concurso

o que eu costumo fazer nessa situação?
Crio 2 classes, Concurso e Fase
A classe Fase possui um atributo idConcurso (tenho esse id na tabela Fase também), que referencia a qual concurso ela pertence
Para listar as fases de um determinado concurso então eu daria um Select * FROM fase WHERE idConcurso = ?

Mas seguindo orientação a objeto, o certo não seria eu ter uma coleção de Fases na classe Concurso? é uma boa prática fazer assim? me parece mais trabalhoso, apesar de parecer mais orientado a objeto

Na minha opnião, está correto da maneira que vc fez, pois vc apenas recupera o id_concurso e seta os atributos das fases !!! Se vc jogar o método na classe concursos vc vai ter que setar atributos da fase lá, ai sim fica errado.

Era isso sua dúvida ??

Eu não me importo muito de como vou recuperar a informação do banco de dados na hora de modelar, mas, você poderia ter um hash ao invés de uma simples coleção, onde o ID é o key do hash e o objeto é a fase em si.

Mas o que eu faria mesmo é ter um ArrayList<Fase> dentro da classe Concurso.

Por que trabalhoso?

Colocar um idConcurso em Fase não é nada orientado a objetos… O certo é ter a coleção de objetos Fase dentro de concurso. E isso não é trabalhoso não, pelo contrário, traz muitas vantagens. Se está trabalhoso, talvez você esteja fazendo algo errado.

eu não fiz ainda, só pensei um pouco e parecia que seria mais trabalhoso
hehehe
amanhã vou ver como fica e posto os resultados
uma dúvida então…
vocês nem consideram a existência de um banco de dados na hora de fazer a modelagem?

concordo com o David, consurso tem que ter uma lista de fases…

a query você monta de um jeito que você consiga selecionar a fase de acordo com o concurso…

Sobre isso:

vocês nem consideram a existência de um banco de dados na hora de fazer a modelagem?

Eu não costumo pensar no banco, se você modelar as classes certinho pra fazer o banco de dados fica tranquilo…
OBS: minha opnião…

[]'s