SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
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

Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Rafael Barbolo
 
Aula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoAula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoVinícius de Paula
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
Javascript Orientado a Objeto
Javascript Orientado a ObjetoJavascript Orientado a Objeto
Javascript Orientado a ObjetoFábio Elísio
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
Apresentação Clean Code
Apresentação Clean CodeApresentação Clean Code
Apresentação Clean CodeAndré Leoni
 

Mais procurados (20)

POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
Uml
UmlUml
Uml
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
PMBOK
PMBOKPMBOK
PMBOK
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
Aula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoAula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de Projeto
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Javascript Orientado a Objeto
Javascript Orientado a ObjetoJavascript Orientado a Objeto
Javascript Orientado a Objeto
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Introdução ao CSS
Introdução ao CSSIntrodução ao CSS
Introdução ao CSS
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Apresentação Clean Code
Apresentação Clean CodeApresentação Clean Code
Apresentação Clean Code
 

Semelhante a POO e MVC: conceitos básicos para iniciantes

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
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoAlexandre Andrade
 

Semelhante a POO e MVC: conceitos básicos para iniciantes (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
 
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#
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
 

POO e MVC: conceitos básicos para iniciantes

  • 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.