PHP-GTK: Criando Aplicações Gráficas com PHP Adianti Framework para PHP PHP Programando com Orientação a Objetos Criando Relatórios com PHP

[PHP-GTK] interface

Matheus Neder matheusneder em gmail.com
Quarta Novembro 22 11:02:35 CST 2006


Pessoal, valeu pelas dicas!

Um abraço a todos.

On 11/22/06, Pablo Dall'Oglio <pablo em dalloglio.net> wrote:
>
> http://www.dotproject.net/
>
> PS: Só uma recomendação, quando alguém da lista for iniciar um novo
> assunto. Abrir uma nova mensgaem ao invés de responder uma thread já
> iniciada. Senão para fins de organização dos emails fica bagunçado...
> (http://www.php-gtk.com.br/history/2006-September/thread.html)
>
> abraços
> Pablo
>
> Em Qua, 2006-11-22 às 09:48 -0300, Jáder Tavares - Ultramax Informática
> escreveu:
> > Alguém conheçe um bom gerenciador de projetos em PHP / Java ?
> >
> > vlwww por quem puder me ajudar, estou precisando
> >
> >
> > ----- Original Message -----
> > From: "Diego do Nascimento Feitosa" <diego em dnfeitosa.com>
> > To: <lista em php-gtk.com.br>
> > Sent: Wednesday, November 22, 2006 8:34 AM
> > Subject: RE: [PHP-GTK] interface
> >
> >
> > É quase isso... Seria mais como um protótipo pra classe.
> > Geralmente você usa uma interface quando quer obrigar que uma classe
> tenha
> > "aqueles" métodos.
> > Por exemplo, a interface "Iterator":
> >
> > interface Iterator {
> >   function next();
> >   function rewind();
> >   function valid();
> >   function current();
> >   function key();
> > }
> >
> > Toda classe que implementar essa interface, terá esses métodos, então aí
> > você já elimina a possibilidade de erros de um objeto que não tenha um
> > método em especial.
> >
> > Digamos que você esteja trabalhando com a criação de uma tabela:
> >
> > class Table {
> >   function __construct(Iterator $iter) {
> >     $this->iter = $iter;
> >   }
> >   function drawTable() {
> >     $iter = $this->iter;
> >     while ($iter->valid()) {
> >       $data = $iter->current();
> >       // faz alguma coisa com o $data...
> >       $iter->next();
> >     }
> >     // retorna a tabela
> >   }
> > }
> >
> > Nessa classe você criou uma dependência da interface "Iterator". Todo
> objeto
> > que for passado na construção de Table, terá que ser alguma coisa que
> > implementa esses métodos.
> > Agora por que isso é útil?
> > É útil porque você pode ter N implementações de um iterador aí... Você
> pode
> > ter um iterador de arrays, um pra resultados de consultas no banco, um
> > iterador que faça a concatenação de outros iteradores... Enfim, isso
> amplia
> > a gama de possibilidades e opções que você tem na hora de criar um
> objeto, e
> > torna essa classe mais reutilizável; todos esses objetos aí em cima
> serão
> > aceitos, agora depende de você a forma que vai implementar cada um.
> >
> > Um outro exemplo seria um GtkEntry com auto-complete. (Pablo, eu não sei
> se
> > o seu trabalha dessa forma, eu não tive tempo de olha seu código ainda
> :$)
> >
> > Digamos que eu tenha uma interface "Sugestion":
> >
> > interface Sugestion {
> >   function getSugestion();
> > }
> >
> > E o meu GtkEntry pronto pra receber uma chamada e verificar as sugestões
> pro
> > auto-complete:
> >
> > class GtkEntryAutoComplete extends GtkEntry {
> >   function __construct(Sugestion $sugestion) {
> >     $this->sugestion = $sugestion;
> >     // implementação
> >   }
> >   // o restante da implementação. em um evento de pressionamento de
> tecla
> >   // será chamado $sugestion->getSugestion(); . Nesse momento eu não sei
> >   // quem é $sugestion, mas sei que ele tem esse método e faz o que eu
> quero
> > }
> >
> > Agora eu posso ter inúmeras implementações de "Sugestion"...
> > // sugestões do banco
> > class DBSugestion implements Sugestion {
> >   function getSugestion() {
> >     // retorna as sugestões
> >   }
> > }
> > // sugestões de um webservice
> > class WSSugestion implements Sugestion {
> >   function getSugestion() {
> >     // retorna as sugestões
> >   }
> > }
> >
> > Daí é só brincar com as instâncias
> >
> > $db = new DBSugestion();
> > $ws = new WSSugestion();
> >
> > $entry = new GtkEntryAutoComplete($db);
> > // ou
> > $entry = new GtkEntryAutoComplete($ws);
> >
> > Aí eu amplio a minha gama de fontes de sugestão, e uso apenas uma classe
> > "AutoComplete".
> >
> > Acho que é isso!!
> >
> >
> > ********** Email Original *********
> > ** To:   "Comunidade Brasileira de PHP-GTK" <lista em php-gtk.com.br>
> > ** From: matheusneder em gmail.com
> > ** Date: Wed, 22 Nov 2006 02:54:04
> > **********
> >
> > Oi pessoal, eu to dando uma olhada numas coisas de php5 OO, dei uma
> brincada
> > com o uso de "interface" e pelo o que eu pude deduzir (Por favor,
> corrijam
> > me se eu estiver errado), a interface nada mais é do que algo semelhante
> a
> > protótipo em C, para quem não sabe o que é protótipo, é tipo eu declaro
> > alguma coisa (ex: uma função) mas só vou realmente escreve-la em outra
> parte
> > do código, somente para saber que ela existe (no caso do C também o
> > compilador precisa saber da existencia dela e os tipo de entrada e
> retorno
> > dos dados).
> > Bom, chegando a esta conclusão (se realmente eu estiver certo a respeito
> do
> > uso da interface) e o php enxerga uma classe onde quer que ela esteja
> (antes
> > ou depois de onde eu for estancia-la por ex), fiquei com uma duvida,
> qual é
> > a utilidade real disso? Em que casos usar ou não a interface pode me
> trazer
> > benefícios? Será que o interpretador processa o código com mais
> > deficiência?...???? e várias outras interrogações... hehe
> >
> > Se alguém puder dar uma pálinha sobre esse assunto, ou indicar alguns
> links
> > sobre, eu ficaria muito grato.
> >
> > Um abraço,
> >
> > Matheus
> > _______________________________________________
> > Lista mailing list
> > Lista em php-gtk.com.br
> > http://lists.php-gtk.com.br/cgi-bin/mailman/listinfo/lista
> >
> >
> >
> >
> --------------------------------------------------------------------------------
> >
> >
> > _______________________________________________
> > Lista mailing list
> > Lista em php-gtk.com.br
> > http://lists.php-gtk.com.br/cgi-bin/mailman/listinfo/lista
> >
> > _______________________________________________
> > Lista mailing list
> > Lista em php-gtk.com.br
> > http://lists.php-gtk.com.br/cgi-bin/mailman/listinfo/lista
> --
> :: Pablo Dall'Oglio
> :: www.dalloglio.net
>
> _______________________________________________
> Lista mailing list
> Lista em php-gtk.com.br
> http://lists.php-gtk.com.br/cgi-bin/mailman/listinfo/lista
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://lists.php-gtk.com.br/pipermail/lista/attachments/20061122/3c4a783a/attachment.htm


More information about the Lista mailing list