Estou certo criando o programa dessa forma?

Bom dia, boa tarde boa, boa noite meus caros amigos do GUJ.
Hoje venho tirar umas duvidas minhas a respeito de como organizar o meu projeto. Basicamente estou querendo criar um software para o monitoramento da criação de uma dada espécie, fazendo apenas um registro dos dados biométricos coletados periodicamente do animal, e também alguns dados do ambiente.
Assim, o programa necessita apenas ser preenchido com os valores da coleta periódica para poder gerar um formulário no final com todas as informações.

a estrutura que estou seguindo é assim: tenho uma classe chamada ESPECIE e outra Ambiente. Essas duas classes possuem classes chamadas FabricaDeEspecie e FabricaDeAmbiente. também tenho uma classe chamada Formulário que por sua vez possui uma classe que a constrói denominada FabricaDeFormularios.

Para criar uma instancia de ESPECIE eu passo os respectivos valores para a classe FabricaDeEspecies que me retorna uma nova instancia. o Mesmo procedimento acorre para a classe Ambiente e FabricaDeAmbientes. Já para criar uma instância de Formulario preciso repassar um objeto do tipo Especie e outro do tipo ambiente para a classe FabricaDeFormularios.
Desse modo eu obtenho uma instância de Formulario que posso salvar no banco de dados.

A minha duvida é se estou certo agindo certo criando sempre uma classe fábrica para poder gerar a instância de um objeto? digo isso por que sempre que vou criar um formulário preciso gerar instâncias de outros objetos usando suas fabricas para que no final os valores sejam repassadas ou formulário. não seria melhor repassar diretamente ao formulário logo de cara essas informações?

obrigado e desculpa ter escrito tanto

Seria mais prático postar o código.

Se essa classe de fábrica está tendo somente um papel burocrático, não use. Instancia diretamente o que tiver que instanciar quando necessário.

Não, não está.

Os padrões de projeto do tipo Fábrica devem ser usados somente para criar objetos complexos, sendo necessário que o código cliente não esteja acoplado com os detalhes da criação de um objeto. Geralmente, por “objetos complexos” entendemos como objetos que: precisam de alguma configuração externa, comunicam-se com componentes externos como banco de dados ou fila de mensagens, dependem de algum hardware específico, etc. Um outro caso interessante para os padrões fábrica é quando o código cliente depende apenas de uma interface ou supertipo e este não deve tomar a decisão sobre qual implementação será usada (geralmente configurada externamente também). Sendo assim, o uso do padrão Fábrica deve ser exceção, a regra deve ser usar o bom e velho new sempre que puder.

1 curtida

muito obrigado, acho que entendi oque vc quiz dizer. então no meu caso como os objetos que estou criando são simples não é necessário…
mas futuramente eu vou precisar resgatar esses valores de um banco de dados, nesse caso eu poderia utilizar esse padrão?