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

Mais procurados (20)

Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
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
 
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
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Diagrama de Casos de Uso
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de Casos de Uso
 
Aula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de usoAula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de uso
 
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
 
Javascript Orientado a Objeto
Javascript Orientado a ObjetoJavascript Orientado a Objeto
Javascript Orientado a Objeto
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
JAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOJAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTO
 
Aula diagrama de classes
Aula diagrama de classesAula diagrama de classes
Aula diagrama de classes
 
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestradoCaminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
Caminhos na Carreira Acadêmica: A visão de um tecnólogo que fez mestrado
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 

Semelhante a Programação orientada à objetos & mvc

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
Marcius Brandão
 
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
Ryan Padilha
 

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

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.