View
314
Download
2
Category
Preview:
Citation preview
www.galvao.eti.br
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 1 / 18
Programação Orientada a Objetos
Professor Er Galvão Abbott
Programação Orientada a Objetos
como Linguagem de Implementação
Presidente da ABRAPHP – Associação Brasileira de Profissionais PHPDiretor da PHP Conference BrasilContribui para a tradução da documentação oficial Atua como Zend Framework Evangelist para o ZTeam, da Zend.Professor Especialista de Pós-Graduação
20+ anos desenvolvendo sistemas e aplicações com interface web 15+ destes com PHP 7+ com Zend Framework
Palestrante em eventos nacionais e internacionaisInstrutor de cursos presenciais e a distânciaFundador e líder do GU PHPBRFundador* e membro do GU PHPRS
Site: http://www.galvao.eti.br/ http://people.php.net/galvaoTwitter: @galvaoSlides e Documentos: http://slideshare.net/ergalvaoGithub: http://github.com/galvaoPosts: https://medium.com/@galvao
Quem?!
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 2 / 18
www.galvao.eti.brProgramação Orientada a Objetos
Conteúdo
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 3 / 18
www.galvao.eti.br
● O Paradigma de Orientação a Objetos● Vantagens e Desvantagens● Generalização e conceitualização de Objetos
● Atributos e Ações● Particularidades da Orientação a Objetos para desenvolvimento web● Particularidades da linguagem PHP● Classes e Objetos
● Atributos● Métodos
● Herança● Injeção de Dependências● Namespaces● Autoloading● Abstração e Interfaces● Traits● Atributos e Métodos Estáticos● Métodos Especiais● Funções Auxiliares
Programação Orientada a Objetos
O Paradigma da Orientação a Objetos
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 4 / 18
www.galvao.eti.brProgramação Orientada a Objetos
Sequencial → Funcional → Orientada a Objetos
Sequencial
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 5 / 18
www.galvao.eti.brProgramação Orientada a Objetos
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 6 / 18
www.galvao.eti.brProgramação Orientada a Objetos
Alto índice de repetição de códigoNão há necessidade de conceitualizaçãoInexistência de GeneralizaçãoInexistência de AbstraçãoInexistência de PersistênciaDifícil OrganizaçãoLongo tempo de Manutenção
PraticidadeSimplicidadeCurto tempo de criação
Sequencial
Sequencial → Funcional
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 7 / 18
www.galvao.eti.brProgramação Orientada a Objetos
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 8 / 18
www.galvao.eti.brProgramação Orientada a Objetos
fn ( x , y ) {
}
Funcional
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 9 / 18
www.galvao.eti.brProgramação Orientada a Objetos
fn ( x , y ) {
}
Funcional
Médio índice de repetição de códigoAlguma conceitualizaçãoAlguma GeneralizaçãoInexistência de AbstraçãoInexistência de PersistênciaRazoável/Difícil OrganizaçãoMédio tempo de Manutenção
Razoável PraticidadeRazoável SimplicidadeMédio tempo de criação
Funcional → Orientada a Objetos
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 10 / 18
www.galvao.eti.brProgramação Orientada a Objetos
● Identificação do Objeto● Definição de Características (Atributos)● Definição de Ações (Métodos)● Conceitualização / Generalização● Abstração
Orientada a Objetos
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 11 / 18
www.galvao.eti.brProgramação Orientada a Objetos
fn () {
}
class {
}
x , y
fn () {
}
class {
}
x , y
Orientada a Objetos
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 12 / 18
www.galvao.eti.brProgramação Orientada a Objetos
fn () {
}
class {
}
x , y
fn () {
}
class {
}
x , y
Baixa SimplicidadeLongo tempo de criação
Baixo/Inexistente índice de repetição de códigoAlta conceitualizaçãoAlta GeneralizaçãoAlta AbstraçãoPersistênciaAlta OrganizaçãoMédio/Curto Tempo de Manutenção
Orientação a Objetos e a Web
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 13 / 18
www.galvao.eti.brProgramação Orientada a Objetos
/logpublic
cssimgjs
/classlogpublic
cssimgjs
A Web
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 14 / 18
www.galvao.eti.brProgramação Orientada a Objetos
Requisição: index.php
Processamento
Resultado
/public/index.php
Browser
Browser
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 15 / 18
www.galvao.eti.brProgramação Orientada a Objetos
Requisição: index.php
Processamento
Resultado
/public/index.php
Browser
Browser
Orientação a Objetos e a Web
/class/classe.php
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 16 / 18
www.galvao.eti.brProgramação Orientada a Objetos
Orientação a Objetos e PHP
● Métodos Construtores possuem nomes especiais● Herança Simples*● Não há sobrecarga de métodos
Diferenças mais notáveis para outras linguagens OO:
● Namespaces● Traits● Classes Anônimas**● Serialização
Características OO notáveis:
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 17 / 18
www.galvao.eti.brProgramação Orientada a Objetos
Classes são instruções de código-fonte responsáveispela geração de Objetos.
Cada Objeto gerado possui a mesma estrutura ditadapela Classe, ou seja, basicamente possui as mesmasCaracterísticas (Atributos) e pode desempenhar asmesmas Ações (Métodos).
Classes e Objetos
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 18 / 18
www.galvao.eti.brProgramação Orientada a Objetos
C
O1 O2 O3 O4
x, y
fn ()
x, y
fn ()
x, y
fn ()
x, y
fn ()
Classes e Objetos
Recommended