SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Padrões de Projeto
WEB e o MVC

               Almir Neto
     Otávio Calaça Xavier
Padrões de Projeto WEB e o MVC


    Grupo de Desenvolvedores
          PHP de Goiás
  Lista de Discussão

 Certificações
 Troca de Conhecimentos
 Grupos de Estudo
 Encontros
 Palestras
 Eventos
 Networking

                                                                                     2
          Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



      O que são padrões?
quot;Cada padrão descreve um problema que
  ocorre freqüentemente em seu ambiente,
  e então descreve o cerne da solução para
  aquele problema, de um modo tal que
  você pode usar esta solução milhões de
  vezes, sem nunca fazer a mesma coisa
  repetidaquot;
                   Christopher Alexander
                                                       (Arquiteto e Urbanista)

                                                                                     3
          Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



          Padrões de Projeto
  São Conceitos (não tecnologias).

 Resolvem problemas específicos.
 Devem conter:
     Nome,
     Exemplo,
     Contexto,
     Problema      e
     Solução.

                                                                                         4
              Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                       Padrões GoF
    Gang-of-Four (Gangue-dos-Quatro)

     ErichGamma,
     Richard Helm,
     Ralph Johnson e
     John Vlissides

    Organização dos Padrões

                                                           Escopo
        Propósito                                     
    
                                                             Classes
          Criação
                                                             Objetos
          Estrutural
          Comportamental




                                                                                             5
                  Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC


Organização dos Padrões
          GoF




                                                                               6
    Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



Interação entre Padrões




                                                                               7
    Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                             Observer
  Comportamental de Objetos

 Objetivo
     Definir
            uma dependência um-para-muitos entre
     objetos.

     Uma   mudança de estado em um objeto fará
     com que todos seus dependentes sejam
     notificados e atualizados automaticamente.

                                                                                           8
                Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                          Observer
    Problema

     Como garantir a atualização de objetos que
     dependem de outro objeto sem que este saiba
     quais objetos dependem dele?

     Observando-o.




                                                                                        9
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                          Observer
    Estrutura e Participantes





                                                                                       10
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                            Observer
    Aplicabilidade

     Quando    desejamos fornecer várias visões
      distintas de um mesmo objeto que funciona
      como um repositório de dados.
     Quando uma mudança em um objeto exige
      mudanças em outros, e não são conhecidos
      quantos devem ser mudados.
     Quando um objeto deve ser capaz de notificar
      outros objetos sem que estes sejam
      fortemente acoplados.
                                                                                         11
               Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                             Singleton
  Criação de Objeto

 Objetivo
     Garantirque uma classe tenha uma única
     instância, e prover um ponto de acesso global
     a esta instância.




                                                                                           12
                 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                         Singleton
    Problema



     Como  garantir a existência de somente uma
     instância de uma classe em um sistema que
     necessite de tal controle?




                                                                                       13
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                         Singleton
    Estrutura e Participantes





                                                                                       14
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                           Singleton
    Aplicabilidade

     Quando    deve existir exatamente uma instância
      de uma classe, e ela deve ser acessível a
      partir de um ponto bem conhecido.
     Quando deve haver somente um objeto que
      gerencie conexões com o banco de dados ou
      acesso a um arquivo de log.



                                                                                         15
               Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                Factory Method
  Criação de Classe

 Objetivo
     Definiruma interface para criar um objeto, mas
      deixar que subclasses decidam que classe
      instanciar
     Permite que uma classe delegue a
      responsabilidade de instanciação às
      subclasses


                                                                                          16
                Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



             Factory Method
    Problema

     Como   fazer quando há a necessidade de
      criação de objetos do mesmo tipo porém com
      particularidades diferentes, sem alteração dos
      já existentes?
     Adicionando Métodos de Fabricação.




                                                                                        17
              Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



             Factory Method
    Estrutura e Participantes





                                                                                       18
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



               Factory Method
    Aplicabilidade

     Considere   uma aplicação onde é possível criar
      vários tipos de documentos diferentes
         Cada documento exige uma criação particular
       

        A classe Application é responsável por criar os
         documentos
        Porém, a classe Application não tem como saber
         antecipadamente as particularidades dos tipos de
         documentos a serem criados


                                                                                         19
               Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                         Composite
  Estrutural de Objeto

 Objetivo
     Compor   objetos em estruturas de árvore para
      representarem hierarquias partes-todo.
     Permitir que clientes tratem de modo uniforme
      objetos individuais e suas composições.




                                                                                         20
               Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                       Composite
    Problema

     Como   fazer quando se deseja trabalhar com
      objetos primitivos e objetos recipientes da
      mesma forma?
     Criando uma classe abstrata que representa
      tanto os componentes primitivos como os
      agregados.



                                                                                       21
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                       Composite
    Estrutura e Participantes





                                                                                       22
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                       Composite
    Aplicabilidade

     Aplicações  gráficas como editores de
      programação visual que devem permitir a
      construção de diagramas complexos a partir
      de componentes simples.
     Diferenças entre objetos simples e objetos
      compostos devam ser ignoradas. Ou seja, o
      cliente deve tratar objetos simples e
      compostos igualmente.

                                                                                       23
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



          Duvidas??




                                                                          24
Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                 O que é MVC?
  Aplicações Monolíticas

 Aplicações em duas camadas
 MVC (Model-View-Controller)
     Padrão  de Arquitetura
     É um conceito
     Fácil manutenção
     Objetivos
     Frameworks


                                                                                         25
               Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



          Vantagens do MVC
    Reaproveitamento de código

    Facilidade de manutenção

    Integração de equipes e/ou divisão de tarefas

    Camada de Persistência independente


    Implementação de segurança


    Facilidade na alteração da interface da

    aplicação


                                                                                        26
              Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                             Camadas
    Model

     Bean
     DAO
     Actions

  View

 Controller




                                                                                          27
                Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                                Model
    Bean

     Entidade
     Segurança
     Encapsulamento
     Vantagens




                                                                                      28
            Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                                 Model
    DAO – Data Access Object

     Persistência
     Portabilidade
     Independência




                                                                                       29
             Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                                   Model
    Action

     Regras  do Negócio
     Integra Bean, DAO e Views




                                                                                         30
               Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                                View
  Ajax

 Templates
 Web - Standards




                                                                                   31
         Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                            Controller
  Segurança

 Controlar fluxo da aplicação
     Inicia   e finaliza o fluxo




                                                                                           32
                 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



Fluxo da aplicação MVC




                                                                              33
    Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                      Referências
    Padrões GoF, POSA e J2EE.

     Jefferson    Teixeira de Souza, Ph.D
    Padrões de Design Orientados a Objetos.

     Jorge   H. C. Fernandes
    Utilizando UML e Padrões

     CRAIG    LARMAN
    Wikipédia - www.wikipedia.org



                                                                                         34
               Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC



                                  FIM


    Almir Neto – almirneto@gmail.com
Otávio Calaça Xavier – otaviocx@gmail.com




                                                                                  35
        Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvcTadeu Matos
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOLeonardo Sousa
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Glauco Vinicius Argentino de Oliveira
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIFelipe Knappe
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Historia do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no androidHistoria do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no androidPaulo Sato
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCguest489a65e
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?Douglas Aguiar
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...Esdras Da Silva
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)Giovanni Bassi
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSLeonardo Zanivan
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCMichael Costa
 

Was ist angesagt? (20)

Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvc
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Angular js
Angular jsAngular js
Angular js
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEI
 
Jheat
JheatJheat
Jheat
 
Camadas
CamadasCamadas
Camadas
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Historia do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no androidHistoria do mvc, mvp e mvvm no android
Historia do mvc, mvp e mvvm no android
 
Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 

Andere mochten auch

Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoVinícius de Paula
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxOtávio Calaça Xavier
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Aricelio Souza
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Rafael Oliveira
 
Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer
Conceitos de Criptografia e o protocolo SSL - Elgio SchlemerConceitos de Criptografia e o protocolo SSL - Elgio Schlemer
Conceitos de Criptografia e o protocolo SSL - Elgio SchlemerTchelinux
 
UML - Historia e Diagrmas
UML - Historia e DiagrmasUML - Historia e Diagrmas
UML - Historia e DiagrmasBruno Bazoti
 
PHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a PartePHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a ParteJonata Weber
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A ObjetosRápido Site
 
Desenvolvimento web com CodeIgniter
Desenvolvimento web com CodeIgniterDesenvolvimento web com CodeIgniter
Desenvolvimento web com CodeIgniterPedro Junior
 
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...Anderson Kanegae Soares Rocha
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Natanael Simões
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 

Andere mochten auch (20)

Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de Projeto
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com Ajax
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
 
Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer
Conceitos de Criptografia e o protocolo SSL - Elgio SchlemerConceitos de Criptografia e o protocolo SSL - Elgio Schlemer
Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer
 
UML - Historia e Diagrmas
UML - Historia e DiagrmasUML - Historia e Diagrmas
UML - Historia e Diagrmas
 
PHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a PartePHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a Parte
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A Objetos
 
Desenvolvimento web com CodeIgniter
Desenvolvimento web com CodeIgniterDesenvolvimento web com CodeIgniter
Desenvolvimento web com CodeIgniter
 
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
PHP Orientado a Objetos
PHP Orientado a ObjetosPHP Orientado a Objetos
PHP Orientado a Objetos
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 

Ähnlich wie Padrões Projeto WEB MVC

Devcast Brasil: ExtJS 4 e Sencha Touch 2
Devcast Brasil: ExtJS 4 e Sencha Touch 2Devcast Brasil: ExtJS 4 e Sencha Touch 2
Devcast Brasil: ExtJS 4 e Sencha Touch 2Loiane Groner
 
MVVM Deep Dive - Paulo Aboim Pinto
MVVM Deep Dive - Paulo Aboim PintoMVVM Deep Dive - Paulo Aboim Pinto
MVVM Deep Dive - Paulo Aboim PintoComunidade NetPonto
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010joselinoneto
 
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2Loiane Groner
 
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxDesenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxAlmir Neto
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net MvcGiovanni Bassi
 
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXManuel Lemos
 
Bolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aíBolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aíPriscila Mayumi
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoAlexandre Andrade
 
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia GomesRuby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia GomesPotiLivre Sobrenome
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
 

Ähnlich wie Padrões Projeto WEB MVC (20)

Devcast Brasil: ExtJS 4 e Sencha Touch 2
Devcast Brasil: ExtJS 4 e Sencha Touch 2Devcast Brasil: ExtJS 4 e Sencha Touch 2
Devcast Brasil: ExtJS 4 e Sencha Touch 2
 
Asp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 PtAsp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 Pt
 
tese
tesetese
tese
 
MVVM Deep Dive - Paulo Aboim Pinto
MVVM Deep Dive - Paulo Aboim PintoMVVM Deep Dive - Paulo Aboim Pinto
MVVM Deep Dive - Paulo Aboim Pinto
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010
 
Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3
 
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2
DevInCachu 2012: Desenvolvendo Aplicacoes RIA com ExtJS 4 e Sencha Touch 2
 
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxDesenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net Mvc
 
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
 
Bolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aíBolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aí
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
 
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia GomesRuby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
Ruby on Rails como deve ser utilizada e onde - Julio Cartier Maia Gomes
 
Ruby on rails como deve ser utilizada e onde
Ruby on rails como deve ser utilizada e ondeRuby on rails como deve ser utilizada e onde
Ruby on rails como deve ser utilizada e onde
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
CV Alexandre R. de Castro
CV Alexandre R. de CastroCV Alexandre R. de Castro
CV Alexandre R. de Castro
 

Padrões Projeto WEB MVC

  • 1. Padrões de Projeto WEB e o MVC Almir Neto Otávio Calaça Xavier
  • 2. Padrões de Projeto WEB e o MVC Grupo de Desenvolvedores PHP de Goiás Lista de Discussão   Certificações  Troca de Conhecimentos  Grupos de Estudo  Encontros  Palestras  Eventos  Networking 2 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 3. Padrões de Projeto WEB e o MVC O que são padrões? quot;Cada padrão descreve um problema que ocorre freqüentemente em seu ambiente, e então descreve o cerne da solução para aquele problema, de um modo tal que você pode usar esta solução milhões de vezes, sem nunca fazer a mesma coisa repetidaquot; Christopher Alexander (Arquiteto e Urbanista) 3 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 4. Padrões de Projeto WEB e o MVC Padrões de Projeto São Conceitos (não tecnologias).   Resolvem problemas específicos.  Devem conter:  Nome,  Exemplo,  Contexto,  Problema e  Solução. 4 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 5. Padrões de Projeto WEB e o MVC Padrões GoF Gang-of-Four (Gangue-dos-Quatro)   ErichGamma,  Richard Helm,  Ralph Johnson e  John Vlissides Organização dos Padrões  Escopo Propósito    Classes  Criação  Objetos  Estrutural  Comportamental 5 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 6. Padrões de Projeto WEB e o MVC Organização dos Padrões GoF 6 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 7. Padrões de Projeto WEB e o MVC Interação entre Padrões 7 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 8. Padrões de Projeto WEB e o MVC Observer Comportamental de Objetos   Objetivo  Definir uma dependência um-para-muitos entre objetos.  Uma mudança de estado em um objeto fará com que todos seus dependentes sejam notificados e atualizados automaticamente. 8 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 9. Padrões de Projeto WEB e o MVC Observer Problema   Como garantir a atualização de objetos que dependem de outro objeto sem que este saiba quais objetos dependem dele?  Observando-o. 9 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 10. Padrões de Projeto WEB e o MVC Observer Estrutura e Participantes  10 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 11. Padrões de Projeto WEB e o MVC Observer Aplicabilidade   Quando desejamos fornecer várias visões distintas de um mesmo objeto que funciona como um repositório de dados.  Quando uma mudança em um objeto exige mudanças em outros, e não são conhecidos quantos devem ser mudados.  Quando um objeto deve ser capaz de notificar outros objetos sem que estes sejam fortemente acoplados. 11 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 12. Padrões de Projeto WEB e o MVC Singleton Criação de Objeto   Objetivo  Garantirque uma classe tenha uma única instância, e prover um ponto de acesso global a esta instância. 12 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 13. Padrões de Projeto WEB e o MVC Singleton Problema   Como garantir a existência de somente uma instância de uma classe em um sistema que necessite de tal controle? 13 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 14. Padrões de Projeto WEB e o MVC Singleton Estrutura e Participantes  14 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 15. Padrões de Projeto WEB e o MVC Singleton Aplicabilidade   Quando deve existir exatamente uma instância de uma classe, e ela deve ser acessível a partir de um ponto bem conhecido.  Quando deve haver somente um objeto que gerencie conexões com o banco de dados ou acesso a um arquivo de log. 15 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 16. Padrões de Projeto WEB e o MVC Factory Method Criação de Classe   Objetivo  Definiruma interface para criar um objeto, mas deixar que subclasses decidam que classe instanciar  Permite que uma classe delegue a responsabilidade de instanciação às subclasses 16 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 17. Padrões de Projeto WEB e o MVC Factory Method Problema   Como fazer quando há a necessidade de criação de objetos do mesmo tipo porém com particularidades diferentes, sem alteração dos já existentes?  Adicionando Métodos de Fabricação. 17 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 18. Padrões de Projeto WEB e o MVC Factory Method Estrutura e Participantes  18 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 19. Padrões de Projeto WEB e o MVC Factory Method Aplicabilidade   Considere uma aplicação onde é possível criar vários tipos de documentos diferentes Cada documento exige uma criação particular   A classe Application é responsável por criar os documentos  Porém, a classe Application não tem como saber antecipadamente as particularidades dos tipos de documentos a serem criados 19 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 20. Padrões de Projeto WEB e o MVC Composite Estrutural de Objeto   Objetivo  Compor objetos em estruturas de árvore para representarem hierarquias partes-todo.  Permitir que clientes tratem de modo uniforme objetos individuais e suas composições. 20 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 21. Padrões de Projeto WEB e o MVC Composite Problema   Como fazer quando se deseja trabalhar com objetos primitivos e objetos recipientes da mesma forma?  Criando uma classe abstrata que representa tanto os componentes primitivos como os agregados. 21 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 22. Padrões de Projeto WEB e o MVC Composite Estrutura e Participantes  22 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 23. Padrões de Projeto WEB e o MVC Composite Aplicabilidade   Aplicações gráficas como editores de programação visual que devem permitir a construção de diagramas complexos a partir de componentes simples.  Diferenças entre objetos simples e objetos compostos devam ser ignoradas. Ou seja, o cliente deve tratar objetos simples e compostos igualmente. 23 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 24. Padrões de Projeto WEB e o MVC Duvidas?? 24 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 25. Padrões de Projeto WEB e o MVC O que é MVC? Aplicações Monolíticas   Aplicações em duas camadas  MVC (Model-View-Controller)  Padrão de Arquitetura  É um conceito  Fácil manutenção  Objetivos  Frameworks 25 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 26. Padrões de Projeto WEB e o MVC Vantagens do MVC Reaproveitamento de código  Facilidade de manutenção  Integração de equipes e/ou divisão de tarefas  Camada de Persistência independente  Implementação de segurança  Facilidade na alteração da interface da  aplicação 26 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 27. Padrões de Projeto WEB e o MVC Camadas Model   Bean  DAO  Actions View   Controller 27 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 28. Padrões de Projeto WEB e o MVC Model Bean   Entidade  Segurança  Encapsulamento  Vantagens 28 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 29. Padrões de Projeto WEB e o MVC Model DAO – Data Access Object   Persistência  Portabilidade  Independência 29 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 30. Padrões de Projeto WEB e o MVC Model Action   Regras do Negócio  Integra Bean, DAO e Views 30 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 31. Padrões de Projeto WEB e o MVC View Ajax   Templates  Web - Standards 31 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 32. Padrões de Projeto WEB e o MVC Controller Segurança   Controlar fluxo da aplicação  Inicia e finaliza o fluxo 32 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 33. Padrões de Projeto WEB e o MVC Fluxo da aplicação MVC 33 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 34. Padrões de Projeto WEB e o MVC Referências Padrões GoF, POSA e J2EE.   Jefferson Teixeira de Souza, Ph.D Padrões de Design Orientados a Objetos.   Jorge H. C. Fernandes Utilizando UML e Padrões   CRAIG LARMAN Wikipédia - www.wikipedia.org  34 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  • 35. Padrões de Projeto WEB e o MVC FIM Almir Neto – almirneto@gmail.com Otávio Calaça Xavier – otaviocx@gmail.com 35 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com