• Nenhum resultado encontrado

aula2 catalogo mvc teste1

N/A
N/A
Protected

Academic year: 2021

Share "aula2 catalogo mvc teste1"

Copied!
18
0
0

Texto

(1)

Padr˜

oes de Projeto de Software

Introdu¸c˜ao

Paulo Gomide

Departamento de Ciˆencia da Computa¸c˜ao Universidade de Ita´una

(2)

Sumary

Cat´alogo de Padr˜oes

Primeiro Contato com os 23 Padr˜oes

Um Exemplo da Utiliza¸c˜ao de Padr˜oes em um Sistema MVC

Padr˜oes Aplicados a um Sistema MVC

Teste 1

Teste 1

Fim

(3)

Padr˜

oes Criacionais

Factory Method

Define uma interface para cria¸c˜ao de um objeto, permitindo que as suas subclasses decidam qual classe instanciar. O Factory Method deixa a responsabilidade de instancia¸c˜ao para as subclasses.

Abstract Factory

Provˆe uma interface para cria¸c˜ao de fam´ılias de objetos relacionados ou interdependentes, sem especificar suas classes concretas. Remove a dependˆencia entre o cliente, que usa os objetos, e a classe dos objetos produzidos.

(4)

Padr˜

oes Criacionais

Builder

Separa a constru¸c˜ao de um objeto complexo de sua representa¸c˜ao, atrav´es de uma interface gen´erica para a constru¸c˜ao incremental de agrega¸c˜oes. Um Builder esconde os detalhes de como os componentes s˜ao criados, representados e compostos.

Prototype

Especifica os tipos de objetos a serem criados num sistema, usando uma instˆancia prot´otipo. Cria novos objetos copiando este prot´otipo.

Singleton

Assegura que uma classe tenha apenas uma instˆancia e provˆe um ponto global de acesso a ela.

(5)

Padr˜

oes Estruturais

Adapter

Converte a interface de uma classe em outra, esperada pelo cliente. O Adapter permite classes que antes n˜ao poderiam trabalhar juntas, por incompatibilidade de interfaces, possam agora fazˆe-lo.

Bridge

Separa uma abstra¸c˜ao de sua implementa¸c˜ao, de modo que ambas possam variar independentemente.

Composite

Comp˜oe objetos em ´arvores de agrega¸c˜ao (relacionamento parte-todo). O Composite permite que objetos agregados sejam tratados como um ´

(6)

Padr˜

oes Estruturais

Decorator

Anexa responsabilidades adicionais a um objeto dinamicamente. Provˆe uma alternativa flex´ıvel para extens˜ao de funcionalidade sem a

necessidade de subclasses.

Facade

Provˆe uma interface unificada para um conjunto de interfaces em um subsistema. O Facade define uma interface alto n´ıvel para facilitar o uso deste subsistema.

Proxy

(7)

Padr˜

oes Comportamentais

Interpreter

Trata uma determinada linguagem, definindo uma representa¸c˜ao para sua gram´atica de modo que o interpretador possa interpretar senten¸cas da linguagem e prover abstra¸c˜oes para sua an´alise sint´atica.

Template Method

Definindo o esqueleto de um algoritmo em uma opera¸c˜ao, permite que subclasses componham o algoritmo e tenham a possibilidade de redefinir certos passos a serem tomados no processo, sem contudo mud´a-lo.

Chain of Responsability

Representa o encadeamento de objetos receptores para o processamento de uma s´erie de solicita¸c˜oes diferentes e transporta a mensagem atrav´es da corrente at´e que um dos objetos a trate. Assim, separa objetos transmissores dos receptores, dando a chance de mais de um objeto poder tratar a solicita¸c˜ao.

(8)

Padr˜

oes Comportamentais

Command

Encapsula uma solicita¸c˜ao como um objeto, de modo que clientes possam parametrizar diferentes solicita¸c˜oes, enfileirar ou fa¸cam registros que suportem que as opera¸c˜oes sejam desfeitas. Separa, ent˜ao, o criador da mensagem do executor da mesma.

Flyweight

Usa o compartilhamento de dados para dar suporte eficiente a um grande n´umero de objetos com alto n´ıvel de granularidade, evitando um uso excessivo e desnecess´ario de mem´oria.

Iterator

Provˆe um modo de acesso a elementos de um agregado de objetos, sequencialmente, sem exposi¸c˜ao de estruturas internas.

(9)

Padr˜

oes Comportamentais

Mediator

Desacopla e gerencia as colabora¸c˜oes entre um grupo de objetos. Define um objeto que encapsula as intera¸c˜oes dentro desse grupo.

Memento

Sem violar o encapsulamento, captura e externaliza o estado interno de um objeto num devido momento (“snapshot”), de modo que este estado possa ser restaurado posteriormente.

Observer

Provˆe sincroniza¸c˜ao, coordena¸c˜ao e consistˆencia entre objetos relacionados, considerando o impacto da altera¸c˜ao de um objeto nos demais.

(10)

Padr˜

oes Comportamentais

State

Permite que um objeto mude seu comportamento quando seu estado interno muda. Sua aplica¸c˜ao d´a a impress˜ao que o objeto mudou efetivamente sua classe relacionada.

Strategy

Define uma fam´ılia de algoritmos, encapsula cada um deles como uma classe, e torna flex´ıvel a escolha de qual usar. O padr˜ao Strategy desacopla os algoritmos dos clientes que os usa.

Visitor

Representa uma opera¸c˜ao a ser realizada sobre elementos da estrutura de um objeto. O Visitor permite que se crie um nova opera¸c˜ao sem que se mude a classe dos elementos sobre as quais ela opera.

(11)

Padr˜

oes Aplicados a um Sistema MVC

Descri¸c˜

ao de MVC

• Model/View/Controller ´e um padr˜ao de arquitetura de software que visa separar a l´ogica de neg´ocio da l´ogica de apresenta¸c˜ao,

permitindo o isolamento do desenvolvimento, teste e manuten¸c˜ao isolado de ambos.

• Um sistema que segue o padr˜ao MVC apresenta os 3 componentes b´asicos: Model, View e Controller.

• Ao contr´ario de sistemas antecessores a sua solidifica¸c˜ao, o padr˜ao MVC atrav´es do desacoplamento desses componentes aumenta a flexibilidade e a reusabilidade do sistema.

(12)

Padr˜

oes Aplicados a um Sistema MVC

Componentes de MVC

• Model (Modelo): representa a aplica¸c˜ao em si. ´E usado para definir e gerenciar o dom´ınio da informa¸c˜ao e notificar observadores sobre mudan¸ca nos dados.

• View (Vis˜ao): apresenta na sa´ıda de dados o modelo num formato adequado ao utilizador. Diferentes vis˜oes podem existir para um mesmo modelo, para diferentes prop´ositos.

• Controller (Controlador): recebe os dados de entrada e ap´os realizar a valida¸c˜ao e filtragem destes, inicia a resposta ao utilizador ao invocar objetos do modelo.

(13)
(14)

Desacomplamento → Padr˜

ao Observer

Problema Espec´ıfico

Desacoplar os m´odulos views dos m´odulos models.

Problema Geral

Desacoplar objetos de modo que mudan¸cas em um deles possam afetar outros, sem a necessidade de que o objeto alterado conhe¸ca detalhes dos demais objetos.

(15)

Vis˜

ao Composta → Padr˜

ao Composite

Problema Espec´ıfico

Permitir que um m´odulo views seja composto por v´arios objetos mais simples (subclasse CompositeView).

Problema Geral

Permitir o agrupamento de objetos de forma que eles possam ser

tratados como um ´unico objeto. Assim ´e poss´ıvel criar uma hierarquia de classes de modo que subclasses definam objetos primitivos e outras classes definam objetos compostos, que agrupam objetos primitivos formando objetos mais complexos.

(16)

Novo Tratamento da Resposta → Padr˜

ao Strategy

Problema Espec´ıfico

Mudar a forma como o m´odulo view reage a entrada do usu´ario alterando apenas o m´odulo Controller, a fim de evitar altera¸c˜oes na apresenta¸c˜ao visual.

Problema Geral

Representar um algoritmo atrav´es de um objeto, a fim de facilitar:

• A substitui¸c˜ao de um algoritmo no sistema est´atica ou dinamicamente;

• A disponibiliza¸c˜ao de variantes de um algoritmo;

• O encapsulamento de estruturas de dados complexas de um algoritmo.

(17)

Teste 1

Quest˜

ao 1

Defina com suas palavras o que ´e um Padr˜ao de Projeto de Software.

Quest˜

ao 2

Trace um paralelo entre desenvolvimento de um projeto pequeno e um projeto grande, descrevendo as dificuldades inerentes a cada um, onde se concentram os principais esfor¸cos, as preocupa¸c˜oes e cuidados que devem ser tomados em cada um e a importˆancia da defini¸c˜ao dos padr˜oes a serem utilizados em cada situa¸c˜ao.

Quest˜

ao 3

Descreva resumidamente um padr˜ao criacional, um estrutural e um comportamental de sua escolha.

(18)

Obrigado pela aten¸c˜ao!

Referências

Documentos relacionados

Mas a gatinha preta já se tinha despachado muito mais cedo e, por isso, enquanto Alice estava aninhada a um can- to da grande poltrona, meio falando consigo mesma e meio adormecida,

Permanente Um objeto neste estado ´e classificado como um objeto em movimento, entretanto seu estado pode mudar e consequentemente ser classificado como (a)

Na associação, objetos específicos de uma classe se associam entre si ou com objetos específicos de outras classes. Herança

31 O Plano Claro Pós MAIS 6Gb só permite a inclusão de 01 (um) dependente Internet Compartilhada ou Controle ou Claro Internet Pós Mais, não estando disponível a inclusão de

• Uma declara¸ c˜ ao de classe pode conter membros privados ( private ), protegidos ( protected ) e p´ ublicos ( public ). • private : membros declarados como privados somente s˜

Neste contexto, está à agricultura orgânica, que é um sistema de produção alternativo seguro e sustentável, baseado na interação dinâmica entre o solo, as plantas,

Sustenta que: (1) se casou com o falecido em abril de 2000 pelo regime da separação de bens, ocorrendo o óbito em outubro de 2009; (2) ele havia pleiteado direitos que

5.1.15 No caso de erros decorrentes de preenchimento incorreto do formulário de inscrição, o inscrito terá até 03 (três) dias úteis após o exame para corrigir os dados pelo