Problemas com dependência entre objetos ao criar dois caminhos de navegação

Boa noite pessoal.

Estou com uma dúvida sobre a dependência entre objetos ao criar dois caminhos de navegação.

Vejam os exemplos a seguir:
Tenho duas classes em que tenho a relação de “classificação de itens”

class Item {
  Grupo grupo
  String nome
}

class Grupo {
  String nome
}

Dessa forma a navegação é sempre de Itens para Grupo. (item.getGrupo())
Agora, por exemplo, caso eu queria montar uma view JSF com layout em abas, sendo que as abas são os grupos e os dados dentro da aba serão os itens. A navegação deveria ser de Grupos para Itens. (grupo.getItens())

Neste caso o código poderia ficar assim:

class Item {
  Grupo grupo
  String nome
}

class Grupo {
  String nome
  List<Item> itens
}

Desta forma, as chances de reutilizar as classes de Item e Grupo caem muito devido ao acoplamento cíclico.

Agora sim… vem a dúvida:
Vocês já passaram por alguma situação deste tipo?
Vocês têm alguma sugestão de como evitar esta dependência?
Existe algum padrão que possa ser útil nessa situação?
O design dessas classes está adequado?

Imagino que existam várias soluções, por favor, compartilhe sua idéia você também :wink:.

Obs.: Por enquanto não pretendo criar uma discussão sobre frameworks de persistência ou mapemento O/R, somente sobre o design das classes mesmo.

Valews
t+