Ola galera
Estou com uma dúvida na modelagem das minhas classes
Eu tenho uma classe Usuario e uma classe tarefa, a classe tarefa por enquanto tem os seguintes dados:
Id
descricao
dataSolicitacao
dataEmissao
titulo
valor
Agora vai a minha dúvida, cada tarefa, vai ter o usuario atual. o desenvolvedor que é um usuário também, e o certificador que é um usuário também
No caso eu apenas crio 3 variáveis do tipo usuário na minha classe tarefa? É uma solução boa?
Outra parte que eu estou com dificuldades é, que os usuários podem transferir a tarefa pra outro usuário, o usuário pode aceitar, ou reprovar essa tarefa, no caso eu crio uma classe Transferencia, com variaveis do tipo ultimoUsuario, usuarioAtual, aceitar, reprovar?
Qual é a melhor solução?
Caso alguém tenha um dica melhor
Atenciosamente
Boa noite, como aparentemente você está tratando isto apenas a nível de software e não de banco, você poderá criar um vetor da classe Usuário fazendo assim que apenas objetos da classe usuario fossem armazenadas neste vetor ou mesmo uma lista na própria classe Main ou mesmo criar uma outra classe para simular o funcionamento de um banco.
Quanto a outra dúvida, uma forma seria verificar se a tarefa está associada a um usuário, de que forma, cria uma referência na classe tarefa para o usuário, se esta variável ser != null então a tarefa já foi aceita, caso contrario, outro usuário poderá localiza-la e aceita-la.
Espero te-lo ajudado.
Há várias formas de modelar.
Eu criaria uma classe abstrata Usuario e as classes UsuarioDesenvolvedor e UsuarioCertificador. Criaria as interfaces Desenvolvedor e Certificador com os métodos desenvolver e certificar que seriam implementadas, respectivamente por UsuarioDesenvolvedor e UsuarioCertificador.
Criaria a classe Tarefa que teria um método usuarioAtribuido que recebe o usuário como parâmetro.
Na classe Usuario, teria um método executaTarefa que recebe uma tarefa como parâmetro e, internamente, define o usuarioAtribuido atual.
Teria, também, na classe Usuario o método transferirTarefa que recebe outro usuário. Nesse método, seria implementada a alteração da tarefa atual para o usuário passado como parâmetro e a tarefa seria desassociada do usuário.