Distribution Patterns

3
Design Patterns (GoF) Prototype O padrão Prototype é utilizado frequentemente em linguagens estaticamente tipadas como C++ e Java, e menos freqüentemente utilizadas em linguagens dinamicamente tipadas como Smalltalk. O padrão Prototype exige a implementação de uma operação de clonagem em cada uma das classes concretas do protótipo. Esta tarefa pode ser inconveniente, no caso do reaproveitamento de classes pré-existentes que não possuem tal operação, ou mesmo complexa, se for considerada a possibilidade de existirem referências circulares nos atributos de um objeto (um objeto possui um atributo que referencia um objeto que, por sua vez, referência o objeto original). O padrão Prototype pode ser utilizado em sistemas que precisam ser independentes da forma como os seus componentes são criados, compostos e representados. O padrão Prototype pode ser útil em sistemas com as seguintes características: Sistemas que utilizam classes definidas em tempo de execução; Sistemas que utilizam o padrão Abstract Factory para criação de objetos. Neste caso, a hierarquia de classes pode se tornar muito complexa e o padrão Prototype pode ser uma alternativa mais simples, por realizar a mesma tarefa com um número reduzido de classes; Sistemas que possuem componentes cujo estado inicial possui poucas variações e onde é conveniente disponibilizar um conjunto pré-estabelecido de protótipos que dão origem aos objetos que compõem o sistema. Distribution Patterns

description

Distribution PatternsData Transfer Object (Objeto de Transferência de Dados)É um padrão de projeto de software usado para transferir dados entre subsistemas de um software. DTOs são frequentemente usados em conjunção com objetos de acesso a dados para obter dados de um banco de dados.A diferença entre objetos de transferência de dados e objetos de negócio ou objetos de acesso a dados é que um DTO não possui comportamento algum, exceto o de armazenamento e obtenção de seus próprios dados. DTOs são objetos simples que não contêm qualquer lógica de negócio que requeira testes.Em uma arquitetura EJB tradicional, os DTOs servem para dois propósitos: primeiro, contornar o problema que entidades do EJB não são serializáveis; segundo, eles definem implicitamente uma fase de montagem onde todos os dados que serão usados para apresentação passam por marshalling antes de irem efetivamente para a camada de apresentação. Uma terceira razão para usar DTOs é que camadas não-adjacentes à camada de dados da aplicação não podem acessar estes objetos e modificá-los.

Transcript of Distribution Patterns

Design Patterns (GoF)

Prototype

O padrão Prototype é utilizado frequentemente em linguagens estaticamente tipadas

como C++ e Java, e menos freqüentemente utilizadas em linguagens dinamicamente

tipadas como Smalltalk.

O padrão Prototype exige a implementação de uma operação de clonagem em cada uma

das classes concretas do protótipo. Esta tarefa pode ser inconveniente, no caso do

reaproveitamento de classes pré-existentes que não possuem tal operação, ou mesmo

complexa, se for considerada a possibilidade de existirem referências circulares nos

atributos de um objeto (um objeto possui um atributo que referencia um objeto que, por

sua vez, referência o objeto original).

O padrão Prototype pode ser utilizado em sistemas que precisam ser independentes da forma como os seus componentes são criados, compostos e representados. O padrão Prototype pode ser útil em sistemas com as seguintes características:

Sistemas que utilizam classes definidas em tempo de execução;Sistemas que utilizam o padrão Abstract Factory para criação de objetos. Neste caso, a hierarquia de classes pode se tornar muito complexa e o padrão Prototype pode ser uma alternativa mais simples, por realizar a mesma tarefa com um número reduzido de classes;Sistemas que possuem componentes cujo estado inicial possui poucas variações e onde é conveniente disponibilizar um conjunto pré-estabelecido de protótipos que dão origem aos objetos que compõem o sistema.

Distribution Patterns Data Transfer Object (Objeto de Transferência de Dados)

É um padrão de projeto de software usado para transferir dados entre subsistemas de um software. DTOs são frequentemente usados em conjunção com objetos de acesso a dados para obter dados de um banco de dados.A diferença entre objetos de transferência de dados e objetos de negócio ou objetos de acesso a dados é que um DTO não possui comportamento algum, exceto o de armazenamento e obtenção de seus próprios dados. DTOs são objetos simples que não contêm qualquer lógica de negócio que requeira testes.Em uma arquitetura EJB tradicional, os DTOs servem para dois propósitos: primeiro, contornar o problema que entidades do EJB não são serializáveis; segundo, eles definem implicitamente uma fase de montagem onde todos os dados que serão usados para apresentação passam por marshalling antes de irem efetivamente para a camada de apresentação. Uma terceira razão para usar DTOs é que camadas não-adjacentes à camada de dados da aplicação não podem acessar estes objetos e modificá-los.

Framework

Spring MVC

O framework Spring, é um dos frameworks Java mais conhecido e utilizado. Esse framework implementa um grande número de funções, como injeção de dependência, persistência de dados e uma implementação para o padrão MVC para a criação de aplicações WEB.O Spring é um framework open source para a plataforma Java criado por Rod Johnson e descrito em seu livro "Expert One-on-One: JEE Design e Development". Trata-se de um framework não intrusivo. No Spring o container se encarrega de "instanciar" classes de uma aplicação Java e definir as dependências entre elas através de um arquivo de configuração em formato XML, inferências do framework, o que é chamado de auto-wiring ou ainda anotações nas classes, métodos e propriedades. Dessa forma o Spring permite o baixo acoplamento entre classes de uma aplicação orientada a objetos.O Spring possui uma arquitetura baseada em interfaces e POJOs (Plain Old Java Objects), oferecendo aos POJOs características como mecanismos de segurança e controle de transações. Também facilita testes unitários e surge como uma alternativa à complexidade existente no uso de EJBs. Com Spring, pode-se ter um alto desempenho da aplicação.Esse framework oferece diversos módulos que podem ser utilizados de acordo com as necessidades do projeto, como módulos voltados para desenvolvimento Web, persistência, acesso remoto e programação orientada a objetos.