Andrey Knupp Vital 136 Denunciar post Postado Dezembro 4, 2010 Massa !!! Compartilhar este post Link para o post Compartilhar em outros sites
GustavoMZ 1 Denunciar post Postado Maio 1, 2011 Fiz o exemplo da pizzaria: <?php interface Pizza{ public function preparar(); public function assar(); public function cobrar(); } class pizzaCalabresa implements Pizza{ public function preparar(){ echo '<br />molho, queijo, calabreza, cebola e tomate'; } public function assar(){ echo '<br />15 minutos'; } public function cobrar(){ echo '<br />R$ 12,00<br />'; } } class pizzaNapolitana implements Pizza{ public function preparar(){ echo '<br />molho, presunto, queijo, tomate e oregano'; } public function assar(){ echo '<br />19 minutos'; } public function cobrar(){ echo '<br />R$ 18,00<br />'; } } class forno{ public function fabricar(Pizza $pizza){ $pizza->preparar(); $pizza->assar(); $pizza->cobrar(); } } $forno = new forno(); $pizza = new pizzaCalabresa(); $forno->fabricar($pizza); $pizza = new pizzaNapolitana(); $forno->fabricar($pizza); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Bruno M.da Silva 0 Denunciar post Postado Março 19, 2012 AbstractFactory - creational pattern :seta: Fábrica Abstrata - padrão de criação. Fabricar, verbo transitivo direto :seta: Quem fabrica, fabrica alguma coisa. Estou começando a estudar mais profundamente GOF, to com dificuldades de compreender a diferença entre Abstract Factory e Factory Method. Alguém consegue ajudar com um exemplo simples? :) Compartilhar este post Link para o post Compartilhar em outros sites
Douglas Aguiar 2 Denunciar post Postado Julho 17, 2012 Excelente didática como sempre joão, eu poderia sugerir que você colocasse ao final de cada tópico abordado(comentado por você) o link para o tópico que contém os índices para aqueles q chegaram a um desses tópicos aleatóriamente, não vai ter tanta credibilidade qnto se você postar mas pra galera que quiser ter mais aulas com o mestre ae segue o link separado por assuntos http://forum.imasters.com.br/topic/402329-padroes-gof/, abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Reinaldo Silva 0 Denunciar post Postado Abril 12, 2013 Pessoal, eu tenho uma dúvida. No exemplo da fábrica de chocolates, digamos que eu tenha uma única fábrica (Nestle por exemplo), que pede algum produto da neste no método comprar (pode ser barra de chocolate, bombom, sei lá). Uma vez que eu tenha a interface Produto, estará correto porque qualquer classe que implemente produto pode ser tratada. Teoricamente isto funcionaria: $barra= new Barra(); $bombom = new Bombom(); $cliente->compra($barra); // saída: Comprei uma barra $cliente->compra($bombom); // saída: Comprei bombom. Mas digamos que eu tenha uma tabela em algum BD com uma lista de vários tipos de produtos. Nesta tabela eu tenho um campo que mostra o tipo do produto, que corresponde com a classe dele. Se eu preciso ler todos os meus produtos do BD, no código eu traria o resultado em um array de objetos Produto por exemplo. Na hora de eu instanciar meu produto, como ele pode ser de qualquer tipo, eu instancio ele como Produto (considerando Produto como uma classe não abstrata, ao invés de interface), ao invés de instanciar diretamente como barra ou bombom. Mas neste caso eu não conseguiria chamar o método comprar, porque apesar de ele aceitar a classe Produto, na hora de chamar o método eu preciso passar um produto concreto, e não um generalizado. Qual seria a melhor solução para esta situação? Fazer um case em cada item da tabela e instanciar de acordo com classe antes de jogar no array? Compartilhar este post Link para o post Compartilhar em outros sites
Victor Hugo Soares 0 Denunciar post Postado Abril 12, 2013 Olá a todos, Gostei muito destes ensinamentos e estou tentando implementar estas classes em meus projetos, mas como sou iniciante em OO estou com uma seguinte dúvida, como ficaria a implementação destas classes utilizando além da criação do select, mas também insert e update? E se eu necessitasse de fazer consultas com sub-queries? Compartilhar este post Link para o post Compartilhar em outros sites
fckruz 2 Denunciar post Postado Fevereiro 16, 2014 Sabe quando dá aquele "estalo", tranco de como fazer bem feito os códigos, valeu por esse espírito João Batista Neto. Compartilhar este post Link para o post Compartilhar em outros sites