Espero realmente ter ajudado com esses artigos a divulgar o uso de DESIGN PATTERNS em PHP. A idéia do reuso de código, padronização, etc.
Existem muitos outros padrões de projeto e design patters (um bom site para estudar algumas outras http://www.dofactory.com/Patterns/Patterns.aspx).
Explicação Geral
Acho que deixei pendente um assunto sobre a parte da arquitetura. Muitas pessoas me perguntaram porque criei uma classe para conexão com o banco de dados e não usei uma framework de persitência. Eu não queria entrar nesse item para não ter que explicar nenhuma framework e sim a idéia.
Na parte da arquitetura é para ficar todos os seus utilitários onde todos os sistemas da sua fábrica irão usar. Você pode inserir lá todas as suas frameworks como: Lumine, que usa a idéia de mapeamentos em XML; EZPDO que tem a idéia de annotations; a ZEND FRAMEWORK e muitas outras, tornando assim a sua biblioteca rica para as suas aplicações.
Na camada negocial, é onde devem ficar as regras de negócio dos sistemas, podendo separar o código o quanto quiserem. Conheço sistemas que tem essa parte muito bem divida, dentro dessa camada várias outras, deixando o código mais especialista.
Patterns que podem também ser usadas: Business Delegate; Value Object; Session Facade; Composite Entity; Value Object Assembler;Value List Handler; Service Locator.
Ainda na camada de Negócio, a parte de acesso a dados temos: Data Acess Object; Service Activator.
Cada design pattern tem motivos (contexto) para ser usada. Você deve analisar a função de cada uma e ver qual se adequa ao seu caso e não usar somente por usar. Do contrário, você corre o risco do seu código virar uma gambiarra.
Na camada view do sistema, temos a manter que faz a parte do controle das ações que se assemelha muito as Servlets e ActionController do Java.
A idéia é receber as requisições do cliente, direcioná-las aos objetos de negócio, onde os dados são processados e retornados ao cliente.
Patterns: Intercepting Filter; Front Controller; View Helper; Composite View; Service To Worker; Dispatcher View.
Podemos, quem sabe mais para frente, dar exemplos reais de algumas patterns.
Pessoal, espero ter contribuído com alguma coisa para vocês.
Um abraço e até mais.













19 Comentários
Qual a sua opinião?