Padrões de Projeto em PHP
Padrões de Projeto em PHP
Padrões de Projeto em PHP
Padrões de
Projeto em PHP
William Sanders
Novatec
Authorized Portuguese translation of the English edition of titled Learning PHP Design Patterns ISBN 9781449344917
© 2013 William B. Sanders. This translation is published and sold by permission of O'Reilly Media, Inc., the owner of
all rights to publish and sell the same.
Tradução em português autorizada da edição em inglês da obra Learning PHP Design Patterns ISBN 9781449344917
© 2013 William B. Sanders. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de
todos os direitos para publicação e venda desta obra.
© Novatec Editora Ltda. 2013.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo
parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora.
Editor: Rubens Prates
Tradução: Lúcia A. Kinoshita
Revisão gramatical: Naomi Yokoyama Edelbuttel
Editoração eletrônica: Carolina Kuwabata
ISBN: 978-85-7522-343-7
Histórico de impressões:
Maio/2013 Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
E-mail: [email protected]
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
VC20130517
Sumário
Prefácio........................................................................................................................................13
7
8 Aprendendo padrões de projeto em PHP
Polimorfismo..................................................................................................... 56
Um nome e várias implementações................................................................ 58
Polimorfismo embutido em padrões de projeto.............................................. 59
Vá com calma....................................................................................................60
Tarefa da factory..........................................................................................102
O cliente..................................................................................................... 105
Acomodando alterações em classes................................................................... 106
Acrescentando elementos gráficos............................................................... 106
Coordenando produtos............................................................................... 108
Alterando o produto do tipo texto............................................................... 109
Alterando o produto do tipo imagem.............................................................111
Acrescentando novos produtos e solicitações com parâmetro..........................111
Uma factory e vários produtos...................................................................... 112
As novas factories........................................................................................ 113
Os novos produtos....................................................................................... 114
O Client com parâmetros............................................................................. 116
Classes auxiliares......................................................................................... 117
Diagrama de arquivos.................................................................................. 119
Alterações em produtos: deixe a interface em paz! ........................................ 119