Este post é diferente dos demais. A pedido do Nilson que tem mantido uma conversa no tópico de Herança e a Interface iremos apresentar um modelo e tecer alguns comentários sobre ele , em uma conversa que se propõe chegar em um modelo melhor.
O modelo que iremos usar como base é este (clique para aumentar):
Bom a primeira coisa é o conceito de banco e agencia. A agencia não é um banco. E um banco não é uma agencia. O banco é uma entidade jurídica, a agencia é uma representação ( uma filial) dessa entidade jurídica. Um banco tem muitas agencias e uma agencia pertence a um banco. Portanto, não é uma relação de herança que queremos usar e sim uma composição. Um banco tem contas, e as contas estão relacionadas a uma agencia. Portanto, a conta corrente pertence a uma agencia e não ao banco. Como a agencia pertence ao banco é possível encontrar todas as contas do banco iterando todas as agencias que o banco tem. A relação de composição da conta seria no nivel da agencia e não no do banco.
As operações de CRUD não devem estar na entidade, a menos que isto se trate de um modelo conceptual de negocio ( por oposição a um modelo de implementação). Vou partir da premissa que é esse o caso ou explicitar as operação não faria sentido algum.
Endereço é uma coisa complexa por si mesma, mas não me parece que haja um problema na sua modelagem.
O NIF não é um inteiro, é um código. Códigos devem ser representandos com String. O titulo se relaciona a vários clientes no papel de sacado, cedente, etc.. cada um destes campos é um cliente. Não ha necessidade alguma de criar entidades no meio para qualificar a relação. A relação já é qualificada pelo nome do campo no titulo. Acho que esse é o ponto mais estranho do modelo que além de inútil cria bastante confusão.
Nilson, espero seus comentários.
[Editado]
O Nilson enviou outro modelo
Vi que deu uma limpada. Ficou melhor. Mas ainda existe o problema entre o Banco e a Agencia. O Banco não têm uma campo agencia. Ele tem múltiplas agências. E cada agência tem um Banco.
Sérgio,
Corrigido a questão da herança, substituído pelo atributo do tipo Cliente na entidade Título;
Corrigido a questão da conta bancária, substituindo pela composição com Agência e esta com Banco ao invés da herança;