Percebi que a camada de negócios deve ser um reflexo da realidade, para que o sistema possa evoluir de maneira mais fácil (flexibilidade) conforme a regra de negócios do cliente tb muda…
Por isso temos as entidades… Por exemplo Funcionario, Departamento, etc…
A duvida que eu tenho é a seguinte:
Vamos supor que eu tenha que exibir todos os funcionários em um JSP… eu deveria criar um DTO do Funcionario e “mandar” para a camada de visão? ou posso mandar o proprio objeto de negócio (o que na minha opinião é mais pratico, já que eu não preciso duplicar código no DTO)?
Pois eu li o Artigo do Phillip Calçado e do Martin Fowler http://fragmental.com.br/wiki/index.php?title=Evitando_VOs_e_BOs
onde eles dizem que não é bom criar DTO´s… e por isso estou confuso…
O que vcs acham… para exibir as entidades em tela a camada de visão pode ter contato com as entidades… ou vou ter que duplicar o código criando um DTO para cada entidade?
Mas pensando no lado negativo disso, imagine se eu tiver 50 JSP´s mostrando os dados desse Funcionario… Ai eu vou e faço uma refatoração no codigo (talvez mudando metodos de uma classe pra outra, etc)… vou ter que verificar nos 50 JSP´s pra ver se não deu nenhum problema, ou até mesmo para ajusta-los a nova mudança!!!
Talvez se eu criasse DTO´s para isso eu não teria esse problema pois os DTO´s não mudariam…
O que vcs acham disso… faz sentido???
Não vejo sentido nisso. Se você mudar sua classe teoricamente deveria mudar o DTO também, senão aí que seu sistema seria uma bagunça completa.
Se você só quer restringir o métodos que vão poder ser usados nas camadas view, use interfaces se for realmente necessário. Esqueça DTO, dificilmente você realmente vai precisar deles.