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.