Aprendendo Padrões de Projeto em PHP

Programação Orientada a Objetos para Projetos Dinâmicos

Aprendendo Padrões de Projeto em PHP Esgotado
× Aprendendo Padrões de Projeto em PHP

Aprendendo Padrões de Projeto em PHP

VER AMOSTRA

Autor:

ISBN impresso: 978-85-7522-343-7
ISBN ebook: 978-85-7522-760-2
Ano: 2013
Páginas: 368
Preço: R$ 79,00

11 opiniões | Opine sobre este livro

Descrição do livro

Desenvolva aplicações executadas em servidores de modo mais eficiente – e melhore suas habilidades em programação PHP no decorrer do processo – aprendendo a usar padrões de projeto em seu código. Este livro mostra como aplicar vários padrões orientados a objetos por meio de exemplos simples e demonstra vários desses padrões em aplicações funcionais completas.

Saiba como esses padrões reutilizáveis podem ajudar você a solucionar problemas complexos, organizar código orientado a objetos e fazer revisões em projetos de grande porte, alterando somente partes pequenas do projeto. Com Aprendendo padrões de projeto em PHP, você aprenderá a adotar um estilo de programação mais sofisticado e a reduzir dramaticamente o tempo de desenvolvimento.

Aprenda os conceitos de padrões de projeto, incluindo como selecionar padrões para lidar com problemas específicos.

Adquira uma visão geral sobre conceitos de programação orientada a objetos, tais como composição, encapsulamento, polimorfismo e herança.

Aplique padrões de projeto de criação para criar páginas dinamicamente usando um método de factory, em vez de instanciar diretamente.

Faça alterações em objetos ou estruturas existentes usando padrões de projeto estruturais, sem a necessidade de alterações no código original.

Use padrões comportamentais para fazer com que os objetos trabalhem juntos na execução de tarefas.

Interaja com MySQL usando padrões comportamentais, como Proxy e Chain of Responsibility.

Explore maneiras de usar as interfaces de padrões de projeto incluídas no PHP.

Ver menos ▲

Sumário

Sumário

  • Prefácio
  • Parte I Familiarizando-se com os fundamentos dos padrões de projeto
  • Capítulo 1 ■ PHP e programação orientada a objetos
    • Introdução à programação intermediária e avançada
    • Por que programação orientada a objetos?
      • Facilitando a resolução de problemas
      • Modularização
    • Classes e objetos
      • Princípio da responsabilidade única
      • Funções construtoras em PHP
    • O Client como uma classe solicitante
    • E a velocidade?
      • Velocidade de desenvolvimento e de alterações
      • Velocidade das equipes
    • O que há de errado com programação sequencial e procedural?
      • Programação sequencial
      • Programação procedural
      • Pague agora ou pague depois
  • Capítulo 2 ■ Conceitos básicos de POO
    • Abstração
      • Classes abstratas
      • Propriedades e métodos abstratos
      • Interfaces
      • Interfaces e constantes
      • Indução de tipos: quase tipagem de dados
    • Encapsulamento
      • Encapsulamento no dia a dia
      • Protegendo o encapsulamento por meio da visibilidade
      • Getters e setters
    • Herança
    • Polimorfismo
      • Um nome e várias implementações
      • Polimorfismo embutido em padrões de projeto
    • Vá com calma
  • Capítulo 3 ■ Conceitos básicos de padrões de projeto
    • MVC reduz o acoplamento e muda o foco da programação
    • Princípios básicos dos padrões de projeto
      • Primeiro princípio dos padrões de projeto
      • Usando tipos de dados de interface em indução de tipos
      • Classes abstratas e suas interfaces
      • Segundo princípio dos padrões de projeto
      • Composição básica usando um cliente
      • Delegação: a diferença entre IS-A (É) e HAS-A (TEM)
    • Padrões de projeto como uma grande “cola”
      • Organização dos padrões de projeto
    • Selecionando um padrão de projeto
      • O que provoca revisão em projetos?
      • O que varia?
      • Qual é a diferença entre padrões de projeto e frameworks?
  • Capítulo 4 ■ Usando UMLs com padrões de projeto
    • Por que Unified Modeling Language (UML)?
    • Diagramas de classes
    • Símbolos para os participantes
    • Notações sobre relacionamentos
      • Relações de associação
      • Relação de agregação
      • Relações de herança e de implementação
      • Relação de criação
      • Relações múltiplas
    • Diagrama de objetos
    • Diagramas de interação
    • A função dos diagramas e das notações na programação orientada a objetos
    • Ferramentas para UMLs
    • Outras UMLs
  • Parte II Padrões de projeto de criação
  • Capítulo 5 ■ Padrão de projeto Factory Method
    • O que é o padrão Factory Method?
    • Quando usar o Factory Method
    • Exemplo minimalista
      • Tarefa da factory
      • O cliente
    • Acomodando alterações em classes
      • Acrescentando elementos gráficos
      • Coordenando produtos
      • Alterando o produto do tipo texto
      • Alterando o produto do tipo imagem
      • Acrescentando novos produtos e solicitações com parâmetro
      • Uma factory e vários produtos
      • As novas factories
      • Os novos produtos
      • O Client com parâmetros
      • Classes auxiliares
      • Diagrama de arquivos
      • Alterações em produtos: deixe a interface em paz!
  • Capítulo 6 ■ Padrão de projeto Prototype
    • O que é o padrão de projeto Prototype?
    • Quando usar o padrão Prototype
    • Função para clonagem
      • O construtor não é executado novamente na clonagem
      • A função construtora não deve realizar nenhuma tarefa importante
    • Exemplo minimalista de Prototype
      • Estudando as drosófilas
    • Acrescentando POO ao Prototype
      • Organização moderna dos negócios
      • Encapsulamento na interface
      • Implementações da interface
      • O cliente na organização
      • Fazendo alterações, adicionando recursos
      • Instanciação dinâmica de objetos
    • Prototype nos domínios do PHP
  • Parte III Padrões de projeto estruturais
  • Capítulo 7 ■ Padrão Adapter
    • O que é o padrão Adapter?
    • Quando usar o padrão Adapter
    • O padrão Adapter com herança
      • Exemplo mínimo de uma classe Adapter: câmbio de moeda
    • O padrão Adapter com composição
      • De desktops a celulares
      • Os Adapters e as alterações
  • Capítulo 8 ■ Padrão de projeto Decorator
    • O que é o padrão Decorator?
    • Quando usar o padrão Decorator
    • Decorator minimalista
      • Interface Component
      • Interface Decorator
      • Componente concreto
      • Decoradores concretos
      • O cliente
    • O que dizer dos encapsuladores?
      • Primitivos em encapsuladores
      • Encapsuladores embutidos no PHP
      • Encapsuladores em padrões de projeto
    • Decorators com vários componentes
      • Vários componentes concretos
      • Decoradores concretos com vários estados e valores
      • Serviço de encontros para desenvolvedores
    • Interface de usuário (UI) em HTML
      • Classe cliente passando dados HTML
      • Atribua um nome de variável a uma instância de objeto
      • Acrescentando uma decoração
  • Parte IV Padrões de projeto comportamentais
  • Capítulo 9 ■ Padrão Template Method
    • O que é o padrão Template Method?
    • Quando usar o Template Method
    • Usando o Template Method com imagens e legendas: um exemplo mínimo
      • A classe abstrata
      • A classe concreta
    • O cliente
    • Princípio de Hollywood
    • Usando o Template Method com outros padrões de projeto
      • Carga de trabalho reduzida do cliente
      • Participantes do Template Method
    • Participantes do Factory Method
    • O gancho no padrão de projeto Template Method
      • Preparando o gancho
      • Implementando o gancho
      • O cliente e o ajuste no gancho
    • O pequeno e poderoso Template Method
  • Capítulo 10 ■ Padrão de projeto State
    • O que é o padrão State?
    • Quando usar o padrão State?
    • Máquina de estados
    • Lâmpada acesa, lâmpada apagada: o padrão de projeto State mínimo
      • O contexto manda
      • Os estados
      • A solicitação do cliente por intermédio de Context
    • Adicionando estados
      • Alterando a interface
      • Alterando os estados
      • Atualizando a classe Context
      • Um Client atualizado
    • O navegador: mais opções e células
      • Definindo um diagrama de estados para matriz
      • Definindo a interface
      • O Context
      • Os estados
      • O cliente escolhe um caminho
    • O padrão State e o PHP
  • Parte V MySQL e padrões de projeto em PHP
  • Capítulo 11 ■ Uma classe universal para conexões e um padrão Proxy para segurança
    • Uma interface e uma classe simples para MySQL
      • A interface frutífera
      • Classe universal para conexão MySQL e variáveis estáticas
      • Cliente fácil
    • Proxy de proteção para login
      • Criando o cadastramento de dados para login
      • Implementando o Proxy de login
    • O Proxy e a segurança no mundo real
  • Capítulo 12 ■ A flexibilidade do padrão de projeto Strategy
    • Algoritmos de encapsulamento
      • Diferenciando o padrão de projeto Strategy do padrão State
      • Sem instruções condicionais, por favor
      • Uma família de algoritmos
    • Um padrão Strategy minimalista
      • O Client e os scripts de acionamento
      • A classe Context e a interface Strategy
      • As estratégias concretas
    • Padrão Strategy expandido com dados seguros e algoritmos parametrizados
      • Uma classe auxiliar para dados seguros
      • Acrescentando um parâmetro em um método de algoritmo
      • Tabela para pesquisa
      • Módulos para entrada de dados
      • O cliente pede ajuda
      • A alteração pequena, porém significativa, na classe Context
      • As estratégias concretas
    • Padrão Strategy flexível
  • Capítulo 13 ■ Padrão de projeto Chain of Responsibility
    • Passando a responsabilidade
    • Chain of Responsibility em um Help Desk usando MySQL
      • Criando e carregando a tabela de respostas
      • Chain of Responsibility no Help Desk
    • Chain of Responsibility automatizado e o Factory Method
      • O Chain of Responsibility e as solicitações determinadas por datas
      • O Factory Method finaliza a tarefa
    • Facilidade para atualização
  • Capítulo 14 ■ Implementando um CMS para múltiplos dispositivos usando o padrão Observer
    • Interfaces prontas para o Observer
    • Quando usar o padrão Observer?
    • Usando SPL com o padrão Observer
      • SplSubject
      • SplObserver
      • SplObjectStorage
      • O sujeito concreto com a SPL
      • O observador concreto com a SPL
      • O cliente com a SPL
    • PHP sem amarras e o padrão Observer
      • A classe abstrata Subject e a implementação de ConcreteSubject
      • Observer e os vários observadores concretos
      • O cliente
    • Criando um CMS simples
      • Utilitários do CMS
      • O observador para múltiplos dispositivos
    • Pensando nos moldes da POO
Ver sumário completo ▼

Opinião dos leitores

Claudio A

De forma geral, gostei do livro. Excelente preparatório para estudar o livro da GoF. Mas como já dito anteriormente o autor deixa a desejar em exemplos práticos ou capítulos um pouco mais sucintos. Porém aprendi a ver os Padrões de Projetos tão necessários em determinados momentos, quanto loops.

Felipe D de O

Gostei demais do livro por causa da fusão de exemplo prático, código e uso de UML. Excelente!

Ronaldo R J

Ótima qualidade do texto e do conteúdo técnico.

Alexandre F B

Obra muito boa, com exemplos didáticos.

Ver todas ▼