SlideShare uma empresa Scribd logo
1 de 13
Programação Orientada à
Objetos & MVC
CONCEITOS BÁSICOS PARA INICIANTES
Programação Orientada à Objetos
História
• Criado por Allan Kay, início década de 60, também autor da Linguagem Smalltalk
• Ideias fundamentadas antes mesmo da Smalltalk
• 1ª linguagem a utilizar as ideias foi a Simula 67, criada por Ole Johan e Kristen
Nygaard em 1967
• Vem sendo adotada recentemente por grandes empresas de desenvolvimento de
Software
• Incorporada em outras linguagens como Java, C++, Pascal etc. No entanto a
maioria utiliza-se parcialmente da ideia, dando mais espaço para o antigo modelo
de programação procedural
Programação Orientada à Objetos
O que é?
• Linguagem de programação de software criada para tentar aproximar o mundo
real do mundo virtual, através da simulação
• O programador molda os objetos à sua vontade, desde como são e como devem
se interagir
• Os objetos se comunicam através de mensagens (pequenos textos, que não
devem conter espaços)
• É fundamentada em quatro pilares: Abstração, Encapsulamento, Herança e
Polimorfismo
• Trabalha introduzindo classes
Aplicação na Informática - POO
• Além de reduzir o tempo gasto em programar, a POO aumenta a produtividade
do programador
• Cria App , Softwares e sites sem grandes dificuldades
• Reutiliza códigos facilitando o trabalho de programar
• Usado em outras linguagens para criar um modelo mais coerente
• Visa atingir plenamente a ideia do programador
MVC
História
• Denominado Model View Controller ou MVC
• Original de 1979, por Trygve Reenskaug, então trabalhando no Smalltalk
• Criado como um padrão de arquitetura de software
• Feito para satisfazer a necessidade de separação de dados e os layouts das aplicações.
Dessa forma a alteração de um não afeta o outro
• A sua implementação e descrita em profundidade no artigo “Applicatons Programming
in Smalltalk-80: How to use Model-View-Controller
• Transpondo os sistemas que existiam em sua época e focando um estudo nas GUI’s
(Graphical User Interface), Reenskaug criou a primeira implementação para o MVC que
surgiu como uma forma otimizada de se construir tais interfaces gráficas com o
usuário
MVC
Oque é?
• O modelo (model) é usado para definir e gerenciar o domínio da informação e
notificar observadores sobre mudanças nos dados
• A visão (view) apresenta o modelo num formato adequado ao utilizador, na saída
de dados, e diferentes visões podem existir para um mesmo modelo, para
diferentes propósitos
• O controlador (controller) recebe a entrada de dados e inicia a resposta ao
utilizador ao invocar objetos do modelo, e por fim uma visão baseada na entrada.
Ele também é responsável pela validação e filtragem da entrada de dados
Aplicação na informática - MVC
• Representação detalhada da informação que a aplicação opera
• Essencialmente o padrão trata-se dos relacionamento entre os componentes
Model, View, Controller, Pois cada um possui uma funcionalidade especifica
• Aplicação de Web em que a visão é um documento HTML (ou derivado) gerado
pela aplicação. O controlador recebe uma entrada GET ou POST após um estímulo
do utilizador e decide como processá-la, invocando objetos do domínio para
tratar a lógica de negócio, e por fim invocando uma visão para apresentar a saída
Vantagens/ Desvantagens POO
• Complexidade no aprendizado para desenvolvedores de linguagens estruturadas
• Maior uso de memória (heap), por exemplo para aplicações móveis em JavaME
• Maior esforço na modelagem de um sistema OO do que estruturado (porém
menor esforço de codificação, sendo uma vantagen)
• Funcionalidades limitadas por interface, quando estas estão incompletas
(problemas na modelagem)
• Dependência de funcionalidades já implementadas em superclasses no caso da
herança, implementações espalhadas em classes diferentes
POO...
• maior facilidade para reutilização de código e por consequência
do projeto
• maior adequação à arquitetura cliente/servidor
• maior facilidade de comunicação com os usuários e com outros
profissionais de informática
• ciclo de vida mais longo para os sistemas
• desenvolvimento acelerado de sistemas
• possibilidade de se construir sistema muito mais complexos, pela
incorporação de funções prontas
• menor custo para desenvolvimento e manutenção de sistemas
Vantagens/ Desvantagens MVC
• Adiciona uma complexidade desnecessária para aplicações de pequeno porte.
• Precisa de um treinamento adequado.
• A equipe precisa ser muito disciplinada para não fugir dos conceitos do MVC.
• Requer mais tempo e planejamento para construir o sistema.
MVC...
• Múltiplos visualizadores, podendo testar sistemas múltiplos sem necessidade de
paralisar o sistema principal.
• Fácil de criar novas plataformas para o sistema, necessitando apenas criar os
visualizadores e controles necessários para a adaptação.
• Torna o sistema escalável e portável.
• É possível desenvolver paralelamente as camadas, pois são independentes.
Exemplo de POO
Exemplo de MVC

Mais conteúdo relacionado

Mais procurados

Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em JavaDenis L Presciliano
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetosNécio de Lima Veras
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)Marcello Thiry
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 

Mais procurados (20)

SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a ObjetosProgramação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 

Semelhante a Programação orientada à objetos & mvc

Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
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
 
Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Paper NOVL - Naked Objects View Language- InfoBrasil 2012Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Paper NOVL - Naked Objects View Language- InfoBrasil 2012Marcius Brandão
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
Curitiba treinamentos corporativos
Curitiba treinamentos corporativosCuritiba treinamentos corporativos
Curitiba treinamentos corporativosMultimidia e Arte
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelRyan Padilha
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksJonata Weber
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseDr. Spock
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de MicroservicosNorberto Enomoto
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...Lucas Furtado de Oliveira
 

Semelhante a Programação orientada à objetos & mvc (20)

Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
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
 
Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Paper NOVL - Naked Objects View Language- InfoBrasil 2012Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Paper NOVL - Naked Objects View Language- InfoBrasil 2012
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Curitiba treinamentos corporativos
Curitiba treinamentos corporativosCuritiba treinamentos corporativos
Curitiba treinamentos corporativos
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – Frameworks
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software Enterprise
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Microframeworksphp
MicroframeworksphpMicroframeworksphp
Microframeworksphp
 
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
 
PROJET TI.pdf
PROJET TI.pdfPROJET TI.pdf
PROJET TI.pdf
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 

Programação orientada à objetos & mvc

  • 1. Programação Orientada à Objetos & MVC CONCEITOS BÁSICOS PARA INICIANTES
  • 2. Programação Orientada à Objetos História • Criado por Allan Kay, início década de 60, também autor da Linguagem Smalltalk • Ideias fundamentadas antes mesmo da Smalltalk • 1ª linguagem a utilizar as ideias foi a Simula 67, criada por Ole Johan e Kristen Nygaard em 1967 • Vem sendo adotada recentemente por grandes empresas de desenvolvimento de Software • Incorporada em outras linguagens como Java, C++, Pascal etc. No entanto a maioria utiliza-se parcialmente da ideia, dando mais espaço para o antigo modelo de programação procedural
  • 3. Programação Orientada à Objetos O que é? • Linguagem de programação de software criada para tentar aproximar o mundo real do mundo virtual, através da simulação • O programador molda os objetos à sua vontade, desde como são e como devem se interagir • Os objetos se comunicam através de mensagens (pequenos textos, que não devem conter espaços) • É fundamentada em quatro pilares: Abstração, Encapsulamento, Herança e Polimorfismo • Trabalha introduzindo classes
  • 4. Aplicação na Informática - POO • Além de reduzir o tempo gasto em programar, a POO aumenta a produtividade do programador • Cria App , Softwares e sites sem grandes dificuldades • Reutiliza códigos facilitando o trabalho de programar • Usado em outras linguagens para criar um modelo mais coerente • Visa atingir plenamente a ideia do programador
  • 5. MVC História • Denominado Model View Controller ou MVC • Original de 1979, por Trygve Reenskaug, então trabalhando no Smalltalk • Criado como um padrão de arquitetura de software • Feito para satisfazer a necessidade de separação de dados e os layouts das aplicações. Dessa forma a alteração de um não afeta o outro • A sua implementação e descrita em profundidade no artigo “Applicatons Programming in Smalltalk-80: How to use Model-View-Controller • Transpondo os sistemas que existiam em sua época e focando um estudo nas GUI’s (Graphical User Interface), Reenskaug criou a primeira implementação para o MVC que surgiu como uma forma otimizada de se construir tais interfaces gráficas com o usuário
  • 6. MVC Oque é? • O modelo (model) é usado para definir e gerenciar o domínio da informação e notificar observadores sobre mudanças nos dados • A visão (view) apresenta o modelo num formato adequado ao utilizador, na saída de dados, e diferentes visões podem existir para um mesmo modelo, para diferentes propósitos • O controlador (controller) recebe a entrada de dados e inicia a resposta ao utilizador ao invocar objetos do modelo, e por fim uma visão baseada na entrada. Ele também é responsável pela validação e filtragem da entrada de dados
  • 7. Aplicação na informática - MVC • Representação detalhada da informação que a aplicação opera • Essencialmente o padrão trata-se dos relacionamento entre os componentes Model, View, Controller, Pois cada um possui uma funcionalidade especifica • Aplicação de Web em que a visão é um documento HTML (ou derivado) gerado pela aplicação. O controlador recebe uma entrada GET ou POST após um estímulo do utilizador e decide como processá-la, invocando objetos do domínio para tratar a lógica de negócio, e por fim invocando uma visão para apresentar a saída
  • 8. Vantagens/ Desvantagens POO • Complexidade no aprendizado para desenvolvedores de linguagens estruturadas • Maior uso de memória (heap), por exemplo para aplicações móveis em JavaME • Maior esforço na modelagem de um sistema OO do que estruturado (porém menor esforço de codificação, sendo uma vantagen) • Funcionalidades limitadas por interface, quando estas estão incompletas (problemas na modelagem) • Dependência de funcionalidades já implementadas em superclasses no caso da herança, implementações espalhadas em classes diferentes
  • 9. POO... • maior facilidade para reutilização de código e por consequência do projeto • maior adequação à arquitetura cliente/servidor • maior facilidade de comunicação com os usuários e com outros profissionais de informática • ciclo de vida mais longo para os sistemas • desenvolvimento acelerado de sistemas • possibilidade de se construir sistema muito mais complexos, pela incorporação de funções prontas • menor custo para desenvolvimento e manutenção de sistemas
  • 10. Vantagens/ Desvantagens MVC • Adiciona uma complexidade desnecessária para aplicações de pequeno porte. • Precisa de um treinamento adequado. • A equipe precisa ser muito disciplinada para não fugir dos conceitos do MVC. • Requer mais tempo e planejamento para construir o sistema.
  • 11. MVC... • Múltiplos visualizadores, podendo testar sistemas múltiplos sem necessidade de paralisar o sistema principal. • Fácil de criar novas plataformas para o sistema, necessitando apenas criar os visualizadores e controles necessários para a adaptação. • Torna o sistema escalável e portável. • É possível desenvolver paralelamente as camadas, pois são independentes.