Boa noite pessoal,
Estou com um dúvida na aplicação de conceitos de OO/ Modelagem do sistema, a dúvida é a seguinte, um programa deve obrigatoriamente integrar suas classes como na UML/Regras de negócio ou se o programa funcionar fazendo o que deve já está bom?
Resumindo o programa deve “entender” que a integração do código ou simplesmente simula-la?
(Perguntei a um professor e ele disse que tanto faz o importante é funcionar como foi especificado)
Ex: Relação entre produto e categoria, supondo que em um sistema de vendas um produto deve possuir uma categoria e uma categoria pode estar presente em vários produtos, qual das maneiras abaixo estaria mais correta ou tanto faz?
Modo 1 (Acredito ser melhor): Criar uma classe DAO e modelo( com nome, id) para categoria, e a classe modelo do produto possuir um objeto do tipo categoria. E na na hora de realizar o CRUD no banco enviar o objeto da categoria, ex: categoriaDao.cadastrar(produto.getCat()); e na sequência cadastrar o produto com produtoDao.cadastrar(produto()).Onde a categoria seria selecionada de uma combo editável pré carregada de objetos de uma lista, e caso uma nova categoria seja digitada o cadastro será realizado.
Modo 2: Criar somente as classes para o produto com uma String que armazena o nome da categoria, e na hora de fazer o CRUD realizar select’s para pegar o id da categoria a partir do nome, e caso não tenha um id cadastra-la. Onde a categorias seriam selecionadas de uma combo editável preenchida de strings. ex: produtoDao.cadastrar(produto);
implementação abstraída
public void cadastrarProduto(){
Resultado = “SELECT * from categoria WHERE nome_cat =” +prod.getCategoria();
if(Resultado != null){
//insere o produto com o id do resultado
} else {
//cadastra a categoria, pesquisa pelo id e depois cadastra o produto
}
Ficou um pouco grande, mas espero que entendam, o uso da categoria é só um exemplo, a dúvida é para qualquer aplicação onde existem entidades diferentes que se relacionam. Fazer tudo separado e integrar (fica uma pouco mais difícil de implementar) ou tudo separado repetindo campos em várias classes (mais fácil, e como o pessoal costuma dizer (discordo muito disso), 2 Strings a mais em um programa não vão fazer diferença nenhuma) é isso pessoal vlw.
Agradeço desde já!