Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Criar um ArquivoHelper?

Olá. Entendo que eu preciso estudar mais orientação a objetos mas preciso mesmo criar um ArquivoHelper? OBS: capítulo 4 tópico 12 Se toda vez que crio ou altero terei que ler uma entrada e depois trata-la não deveria fazer isso na classe que lhe corresponde, um método, até porque se for ser alterada a forma que a entrada é feita terei que alterar o formato da classe? Se eu aumentar um parâmetro, por exemplo, a classe terá que ser modificada. E, se toda vez que preciso usar o ArquivoHelper é porque eu vou instanciar determinado formato, no caso o Arquivo, eu não deveria manter com alto acoplamento?

Obrigado.

4 respostas

Bom dia. Não sei se entendi sua dúvida por completo pois sua pergunta esta meio truncada, mas vamos lá.

Eu chamei o arquivo de DateHelper, porém, o mais correto era ele ser chamado de DateConverter. Um converter não esta ligado ao modelo no qual converter porque pode haver várias implementações de um mesmo converter. Acho que o nome DateHelper deixaria isso mais claro.

Em orientação objeto, uma das coisas mais importantes é saber onde seu código deve ficar. Você foi por um caminho correto que é pensar dado e comportamento caminhando juntos, porém, nesse caso da conversão de data, essa máxima não tem força justamente pelo motivo que eu coloquei no parágrafo anterior.

Todavia, se você tivesse criado a classe MinhaData que encapsulasse um Date e nela tivesse adicionando os métodos de conversão, por mais que não seja o ideal, só pelo fato de você ter buscado aplicar a máxima de dados e comportamento caminharem juntos já seria enriquecedor.

Era essa a dúvida?

Olá Flavio, não existe DataHelper. Realmente é "ArquivoHelper? OBS: capítulo 4 tópico 12". A pergunta é a mesma, concordo com vc onde diz que criar um DataHelper faz todo sentido! Principalmente porque aprendi com vc e o Nico o que é OO. Mas no contexto da pergunta que referencia o ArquivoHelper que não é uma data que será usada em outro lugar, seria interessante te-la desacoplada do modelo? Como esta la:

class ArquivoHelper {

static cria(informacao) { return new Arquivo(...informacao.toUpperCase().split('/')); } }

Nesse caso o cria até parece um construtor. Toda vez então que eu fosse criar um arquivo eu dependerei de um criador de arquivo externo e toda vez que eu fosse altera-lo a manutenção seria necessária no helper tb.

Fiquei com mais duvida ainda, deveria entao criar um ArquivoConverter?

Desculpe se pereci arrogante quando pergunto se deveria estudar mais, realmente nao foi minha intenção.

solução!

Ah sim...vc está falando do exercício e não dá aula em si. Eu está me referindo ao DateHelper que o correto seria DateConverter.

Sobre o ArquivoHelper...se você não centralizar em nenhum lugar o código que manipula o Arquivo repetirá código cedo ou tarde. Se tiver que mudar o código, terá que mudar em todos os lugares. Nada o impede de criar MeuArquivo e criar instâncias para lidar com arquivos do que usar método estático.

A aula ensina sobre método estático e o exercício visa fixar com outro exemplo.

Obrigado Flávio!