Ir para conteúdo

Arquivado

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

Juliano amadeu

Como pensar em Orientação a Objetos

Recommended Posts

Olá Juliano, Td bem?!

Li sua pergunta e vou tentar responde-la

 

como pensar em OO?!

primeiramente vou apresentar as principais simbologias utilizadas, que são: atores, casos de uso e Classes. Bem vamos ao significado de cada coisa.

 

- Atores, é alguma entidade que vai interagir com o sistema(representado por um boneco de palito) , seja um processo externo, ou mesmo, o temido e amado usuário;

- Casos de uso, exprime uma ação que um método(representada por uma elipse) vai fazer, geralmente se abstrai o diagrama de classes desses casos de uso;

- Classes, representada por um retangulo é como se fosse no mer, mas além de atributos (colunas, falando genericamente) que podem ser classificados entre publicos, privados e protegidos, representa a forma de um objeto. Também tem métodos, funções que determinado objeto vai fazer. Imagine um mer que se possa ter funções nele;

 

Apresentados as simbologias clássicas, vou explicar, ou pelo menos tentar, como é que a coisa funciona. Como disse acima, uma classe é uma forma, imagine uma forma de bolo (o sabor deixo à sua escolha, rsrs), então dessa forma se você colocar a massa e esquentar, vai sair um bolo certo?! Então classe é a forma, o processo de "assar o bolo" chama-se instanciação e o bolo propriamente dito é o objeto. Então em uma programação orientada à objetos o que o metodo construtor(que é diferente dos metodos da classe) faz, é assar o bolo (instanciação).

 

Vou postar um exemplo que vai parecer um clichê, mas acho que é mais simples.

 

Public class Carro{

//atributos

private cor;

private marca;

private ignicao;

 

//metodos

set_cor(){

$this -> cor = "azul";

}

set_marca(){

$this -> marca = "Volks";

}

ligar_ignicao(){

$this -> ignicao = "on";

}

get informacao_carro(){

echo $this -> cor;

echo $this -> marca;

echo $this -> ignicao;

}

}

//forma feita, agora é hora de assar o bolo

 

$carro_1 = new carro();

$carro_1 -> set_cor();

$carro_1 -> set_marca();

$carro_1 -> liga_ignicao();

 

// assado o bolo, é hora de "comer" o bolo

 

$carro_1 -> get_informacao_carro();

 

Bem Juliano, a ideia desse "algoritimo" em php, foi de mostrar como é que funciona, ou pelo menos de um modo bem mínimo como funciona a programação OO. Espero que você tenha entendido ou pelo menos captado o conceito do funcionamento. Se ainda tiver alguma dúvida, por favor pode me perguntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou lendo este tópico e peguei a aplicação do João Batista como exemplo para eu estudar OOP.

Já aprendi muita coisa com o exemplo do diagrama de classes que ele criou, mas ao estudá-la fiquei com algumas dúvidas de conceitos de OOP e gostaria da ajuda de vocês para entender.

 

A classe criada pelo JB

http://forum.imasters.com.br/uploads//1328025338/gallery_94216_5_27262.png (para nao dar flood, apenas colei a url da img do diagrama)

 

Minha dúvida:

No diagrama, temos uma associação de Composição entre 'Question' e 'Alternative', certo? No código da classe 'Question' não deveria criar uma instância interna da classe 'Alternative' com o uso de new? A composição não é isso? A classe-todo cria uma instância interna da classe-parte e se a classe-todo for destruída, a classe-parte também será porque foi criada internamente? É isso ou estou falando besteira?

 

 

Aproveitando para esclarecer outra dúvida: Numa associação simples só se pode associar um objeto à um atributo da classe de forma direta ($objeto->atributo=$objeto2) ou poderia usar um método para associar o objeto à um atributo ($objeto->metodo($objeto2)?

 

 

Estudando OOP eu tive este entendimento:

 

Associação simples só pode passar o objeto ao atributo da classe de forma direta ($objeto->atributo=$objeto2) e não usando um método, pois ai já seria o conceito da agregação.

 

Agregação ocorre quando um método na classe-todo recebe uma classe-parte por meio de parâmetro e se torna uma parte do todo. A classe-parte pode existir isoladamente, sem a necessidade da classe-todo.

 

Composição ocorre quando a classe-todo cria a instância da classe-parte internamente por meio de método. A classe-parte diferentemente da agregação só faz sentido existir se a classe-todo existir.

 

 

É este o entendimento desses três tipos de associações em OOP? Como falei, estou estudando bastante para poder entender os conceitos antes de programar uma aplicação de tamanho e complexidades maiores... Se eu estiver pensando certo, já é um 'passo' andado.

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.