Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá colegas, estive há tempos pesquisando sobre Orientação a Objeto e estive lendo alguns livros sobre o assunto aplicado a PHP que ajudaram em partes. Consegui criar classes para resolver alguns problemas... mas no fundo eu sei que essas classes não estão projetadas de forma correta.
Recentemente quis aperfeiçoar o meu entendimento de Orientação e fiz o curso de 'Introdução a programação orientada a objeto' na escola Impacta. O Curso foi muito bom, embora teórico. Agora estou com 4 fontes de matérias estudando associações e gostaria de ver com vocês se estou pensando de forma correta quanto aos conceitos de OOP.
Vamos lá, o meu entendimento foi o seguinte:
Polimorfismo
Ocorre quando classes derivadas fazem implementação de um método da classe-base, tornando o método herdado com comportamentos diferente. Ou seja, as classes-filhas de uma classe-base terá o mesmo método, mas com comportamentos diferentes.
Exemplo:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.prumow.com.br/images/polimorfismo.jpg&key=1a21841f2c5b9ff3ffe7f3d64ea032de354dff6ddc0817d635100ed2fc60f094" alt="polimorfismo.jpg" />
-----
Agregação
É um relacionamento entre classes onde se tem uma classe-todo e outras classes que são 'partes dela'. A Agregação ocorre quando um método na classe-todo incorpora uma outra classe que faz parte do todo. Ou seja, a classe-todo possui um método cujo parâmetro recebe um objeto (uma outra classe) que se torna 'parte' dela.
Uma dúvida que fiquei na agregação é: Uma classe que faz parte de outra classe (classe-todo) pode existir sem a classe-todo? Na apostila que estou lendo, diz que uma classe-parte não pode existir isoladamente (sem a existência da classe-todo), isso é verdade? Eu não posso ter uma classe-parte sem existir a classe todo?
Exemplo:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.prumow.com.br/images/agregacao.jpg&key=9eafce4505744d6137c0316142bf2903752bf45c57763659887b59d90df44dc0" alt="agregacao.jpg" />
Nota: Neste exemplo de uml, eu entendo que as classes-parte (video, teclado e gabinete) não podem existir se a classe-todo Micro não existir... mas essa é a ideia da agregação? Se objeto-todo não existir, os objetos-partes não devem existir também?
-------
Logo mais posto a respeito de associação simples e composição para ver se estou no pensamento certo.
Obrigado a todos que colaborar em ajudar e me orientar se estou no caminho certo.
Carregando comentários...