A maior rede de estudos do Brasil

Grátis
16 pág.
UNIP   Universidade Paulista   DisciplinaOnline   Sistemas de conteúdo online para Alunos M8

Pré-visualização | Página 1 de 3

26/09/2018 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos.
https://online.unip.br/imprimir/imprimirconteudo 1/16
 
Padrões de Projeto
Um padrão é uma maneira de fazer algo ou de buscar um objetivo.
Um padrão de projeto é um padrão que utiliza classes e métodos em uma
linguagem orientada a objetos.
A interface de uma classe é a coleção de métodos e campos aos quais uma classe
concede acesso para objetos de outras classes.
É um compromisso de que os métodos irão executar a operação implícita em seus
nomes do modo que está especificado na documentação.
Implementar uma classes é escrever os códigos que residem em seus métodos.
A interface deve ser separada da implementação de modo a permitir que
possamos alterar a implementação sem provocar danos colaterais no projeto.
As interfaces permitem que várias classes forneçam a mesma funcionalidade,
abrindo a possibilidade de uma classe implementar mais de uma interface.
As interfaces e as classes podem cooperar quando se trata de definir constantes.
Uma constante é um campo estático e final.
É possível, através do uso de padrões de projeto de interfaces;
1. Adaptar a interface de uma classe para corresponder à interface que o cliente
deseja; 
2. Fornecer uma interface simples para uma coleção de classes; 
3. Definir uma interface que se aplique aos objetos individuais e aos grupos de
objetos; 
4. Desacoplar uma abstração de sua implementação de modo que as duas possam
varia independentemente.
A intenção de cada padrão de projeto é resolver um problema dentro de um
contexto.
Padrões orientados a interfaces se referem a situações onde é necessário definir
ou redefinir o acesso aos métodos de uma classe ou grupo de classes.
Por que padrões de projetos?
Existe uma constante no desenvolvimento de software: alterações. Elas podem
ser causadas por muitas coisas: novos recursos solicitados pelos usuários,
alteração no banco de dados, mudanças legais, etc.
Alguns princípios de um bom design (projeto) podem ajudar a lidar com estas
situações. Dentre outros citamos:
1. Encapsule o que variar para que isto não afete o resto do seu código; 
2. Separe o que muda daquilo que fica igual; 
3. Programe para uma interface, não para uma implementação; 
26/09/2018 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos.
https://online.unip.br/imprimir/imprimirconteudo 2/16
4. Quando possível utilize TEM-UM ao invés de É-UM. Dê prioridade à composição
ao invés da herança.
Criar sistemas utilizando composição dá muito mais flexibilidade. Com isto
podemos alterar o comportamento do sistema em tempo de execução, desde que
o objeto implemente a interface correta.
A composição é utilizada em vários padrões de projetos.
Como podemos usar os padrões de projetos?
Sabemos como utilizar programas que foram compilados e armazenados em API's.
As bibliotecas e frameworks são feitas para permitir este desenvolvimento.
Mas eles não nos garantem um projeto bem estruturado, flexível e fácil de
entender e manter.
Neste ponto os padrões de projeto entram para nos ajudar.
Primeiramente é necessário entender como os padrões de projeto funcionam. Não
é simplesmente tentar "sair utilizando".
É preciso gastar um tempo para estudá-los e aprendê-los.
Por que os padrões de projeto não estão
reunidos em uma biblioteca (API) de modo que
só precisemos utilizá-los?
Porque os padrões de projeto estão em um nível acima das bibliotecas.
Eles nos dão o caminho para resolver um determinado problema e é nossa função
adaptar a solução à nossa plataforma específica.
Bibliotecas e frameworks são padrões de
projeto?
Não. Elas fornecem implementações específicas para uma determinada tecnologia
(como Java e .net, por exemplo).
Alguns pontos são importantes a considerar para se tornar um bom
desenvolvedor:
• Saber apenas os princípios OO não é suficiente; 
• Bons projetos são mais facilmente mantidos, estendidos e reutilizados; 
• Padrões são uma experiência OO comprovada; 
• Padrões não fornecem código, mas soluções; 
• Padrões são descobertos, não inventados; 
• Padrões são principalmente voltados para minimizar os impactos das
alterações; 
• O que variar em um sistema deve ser encapsulado.
26/09/2018 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos.
https://online.unip.br/imprimir/imprimirconteudo 3/16
Exemplos de alguns padrões de projetos
Os padrões de projeto solucionam problemas em diversas áreas do
desenvolvimento.
Veremos os padrões:
Principais padrões de Interface
Adaptador
O objetivo deste padrão é fornecer a interface que o cliente deseja usando os
serviços de uma classe com uma interface diferente.
Um objeto adaptador de classes simplesmente traduz nomes de métodos,
encaminhando chamadas para si mesmo. O objeto adaptador se faz passar por
uma instância do tipo exigido pelo cliente sem um contrato definindo as
necessidades dele.
Façade
Uma grande vantagem da programação OO é evitar que as aplicações se tornem
programas monolíticos. Uma Façade fornece interfaces. Consiste em uma classe
com métodos que tornam fácil usar as classes em um subsistema. Seu objetivo é
fornecer uma interface que torne um subsistema fácil de usar.
Uma Façade geralmente é uma classe configurável, reutilizável e com uma
interface de nível mais alto que torna o subsistema mais fácil de usar.
Composite
É um grupo de objetos no qual alguns deles podem conter outros. Este padrão
permite aos clientes tratar objetos individuais e composições de objetos
uniformemente.
Os principais conceitos do composite são: um grupo pode conter tanto itens
individuais quanto outros grupos. E os grupos e os indivíduos podem compartilhar
uma interface comum.
Bridge
Sua intenção é desacoplar uma abstração da implementação de suas operações
abstratas, de modo que a abstração e sua implementação possam variar
independentemente.
Um exemplo comum de Bridge é um Driver, isto é, um objeto ou dispositivo
externo com uma interface bem definida.
A interface entre aplicações e drivers permite variar qualquer um dos lados
independentemente. Podemos criar novas aplicações que usem os drivers sem
alterá-los e podemos também criar novos drivers sem alterar as aplicações
existentes.
Principais padrões de Responsabilidade
26/09/2018 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos.
https://online.unip.br/imprimir/imprimirconteudo 4/16
Singleton
Seu objetivo é garantir que uma classe só tenha uma instância e que forneça um
ponto global de acesso a ela.
Seu uso principal é centralizar a autoridade em um único objeto.
Observer
Seu objetivo é definir uma dependência de um-para-muitos de modo que, quando
um objeto mudar de estado, todos os seus dependentes sejam notificados e
atualizados automaticamente.
Aparece mais freqüentemente em aplicações GUI (interface gráfica do usuário).
Mediator
Define um objeto que encapsula o modo como um conjunto de objetos interage.
Promove um acoplamento fraco, evitando que os objetos se refiram um ao outro
explicitamente e nos permite variar a interação deles independentemente.
Aparece mais freqüentemente em aplicações GUI (interface gráfica do usuário).
Proxy
Fornece um procurador, ou marcador de lugar, para outro objeto, a fim de
controlar o acesso a ele.
Chain of Responsibility
Seu objetivo é evitar o acoplamento entre um remetente de uma solicitação e seu
recebedor, para que mais de um objeto possa tratar a solicitação. Para aplicar
este padrão precisamos encadear os objetos receptores e passar a solicitação para
a cadeia, até que um objeto lide com ela.
Este padrão ocorre com mais freqüência em agregações, nas quais uma hierarquia
de contenção fornece uma ordenação natural para uma

Crie agora seu perfil grátis para visualizar sem restrições.