Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vinicius Rangel

[Resolvido] OO -> Implements

Recommended Posts

eu resolvi testar meus conhecimentos em OO e vi que eu não sei muita coisa e decidir virar fera no assunto mas pra isso eu preciso da ajuda de vocês.

 

eu realmente não entendi o que o implements faz e não sei nem por onde começar.

 

bom sabemos que usamos ele quando trabalhos com interfaces até ai estava bem só que eu me perdi no real uso dele.

 

vendo funções que utiliza parece que quando você usa o implements automaticamente todos os métodos/propriedades da interface devem ser utilizado mas eu creio que estou redondamente enganado.

 

vlw pela força

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade eu até estudei porém eu nunca cheguei a aplicar pois eu estudo muitas coisas ao mesmo tempo então decidi dar um tempo e terminar o PHP por que falta pouca coisa.

 

cara até ajudou mas ainda sim eu não peguei o espirito da coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No começo da minha incursão OO eu tive MUITA dificuldade em compreender o que eram interfaces, as quais fazem uso do implements.

 

Muito se falava de contrato de objeto, interface do usuário e blah, blah, blah. Mas, na "época", ninguém explicava direito.

 

Uma palavra que me fez entender praticamente tudo num estalo (tipo os flashes do Chuck) foi polimorfismo. Onde usar uma interface e onde estender um objeto, no entanto, são outros quinhentos.

 

No âmbito de PHP OOP, polimorfismo pode se resumir à capacidade de um objeto agir como se fosse outro.

 

Leitura Recomendada: Métodos de Interface e Polimorfismo: Parte 1, Parte 2 e Parte 3.

 

Bons estudos :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

As interfaces em OO funcionam como assinaturas (contratos), se você programa uma classe que vai implementar uma determinada interface, obrigatoriamente sua classe precisa ter a mesma assinatura da interface, ou seja, ter a implementação dos mesmos métodos e propriedades.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, eu irei reler tudo pois o que sei de OO devo a esses posts que você me passou.

 

então de acordo com o que você disse só consigo entender o implements quando entender bem os métodos de interface e o polimorfismo?

 

@Prog

 

As interfaces em OO funcionam como assinaturas (contratos), se você programa uma classe que vai implementar uma determinada interface, obrigatoriamente sua classe precisa ter a mesma assinatura da interface, ou seja, ter a implementação dos mesmos métodos e propriedades.

 

com base nisso a minha primeira "afirmação" é verdadeira ou falsa?

 

vendo funções que utiliza parece que quando você usa o implements automaticamente todos os métodos/propriedades da interface devem ser utilizado mas eu creio que estou redondamente enganado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não há o "automaticamente", você deve implementar os métodos, se você não o fizer, o "compilador" vai reclamar, dizendo que aquela classe não atende as especificações da interface que a mesma esta implementando.

 

Isto faz mais sentido quando há um projeto de médio ou grande porte, com vários desenvolvedores

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi @Vinicius Rangel,

 

Dá uma lida aqui:

http://wbruno.com.br/2011/04/20/afinal-e-interface-oop/

 

prometo que é uma leitura simples, rápida e indolor. Se você ainda tiver dúvidas, volte e pergunte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma "regrinha" que eu costumo usar para definir se preciso de uma interface ou uma superclasse abstrata:

Pergunte-se: é possível que vários objetos NÃO RELACIONADOS entre si através de HERANÇA realizem as mesmas operações que você está querendo definir?

Se sim, utilize INTERFACES, se não, utilize uma SUPERCLASSE ABSTRATA.

 

Um exemplo bastante útil para se lembrar é a interface padrão do PHP Serializable. Através dela, você define que um objeto pode ser convertido em uma notação textual. Dependendo da sua aplicação, os mais variados tipos de objetos precisam ser serializados e a maioria deles não vai estar relacionado através de herança, então você precisa de uma interface.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw galera no final eu achei ter entendido mas eu não vi uma real utilidade então no minimo eu entendi errado.

 

no exemplo passado do link que o Willian postou ele deu um exemplo bacana galeria e agenda

 

nós temos que ter 2 objetos de qualquer jeito

 

agenda.php

<?php
Class Agenda{
public function insere(){
 //insere
} 
}

?>

 

galeria.php

<?php
Class Galeria{
public function insere(){
 //insere
} 
}

?>

 

mesmo que eu trabalhe com uma interface para a função insere eu vou "repetir" a função de qualquer jeito, para cada uma eu tenho campos diferentes a inserir e o conteúdo de cada método vai ser diferente apesar de ser a "mesma" coisa.

 

me parece que utilizar interface só vai obrigar implementar esse método ao objeto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu disse, uma visibilidade sobre a real necessidade de uso você vê apenas quando esta envolvido em projetos maiores, em projetos do "dia a dia", não utiliza-se deste tipo de recursos comumente.

 

Se você fizer uso de Frameworks, fatalmente estará utilizando de tais recursos, mesmo que inconscientemente.

 

Vão explicar, explicar, explicar... só vai entender quando de fato este recurso for necessário para resolver um caso real, até isto acontecer, as vezes, demora.

 

Preciso saber sobre Interfaces para programar OO?

Não, você precisa entender o conceito, mas pode tranquilamente desenvolver um projeto inteiramente OO sem o uso de interfaces. Os mais puristas dirão que eu estou equivocado... Deixa estar. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu acho que entendi mais como eu não vi real utilidade parece que faltou algo mas novamente seguirei seu conselho.

 

vou continuar os estudos e sem dúvida a necessidade vai surgir para utilizar o mesmo e eu espero estar preparado.

 

vlw galera pode dar closed

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.