E ae galera.
Eu tenho uma classe abstrata chamada Arquivo, e duas filhas (por enquanto) chamadas Foto e Pdf. Toda a regra de tratamento de arquivos de foto e pdf, estão encapsuladas nas respectivas classes.
Porém me veio na cabeça o seguinte. O usuário submete um arquivo. Eu vou ter um byte[] e o controller não vai fazer idéia do que é. Dae eu mando pra classe Arquivo.
Dae vem o problema. Quem vai controlar a regra e validação, vai ser Foto e Pdf. Se eu fizer um método que me retorne qual tipo de arquivo é (Foto ou Pdf), vai quebrar todo meu encapsulamento.
Qual o jeito mais correto de resolver esse problema? Existe algum pattern pra resolver isso, para que eu possa estudar?
Obrigado.