Anda di halaman 1dari 11

Delegao e Composio

Iniciao ao Java Mrcio F. Campos

Conceitos iniciais
Um dos aspectos inerentes a orientao a objetos a capacidade de reaproveitar cdigo ou uma estrutura anteriormente definida.

Iniciao ao Java Mrcio F. Campos

Delegao
Na delegao, uma classe base definida e esta referenciada por outra classe. Por exemplo, um objeto da classe Computador pode possuir entre seus atributos uma referncia um objeto do tipo monitor

Iniciao ao Java Mrcio F. Campos

Composio
Desta maneira, a delegao permite a reutilizao, ou composio, de classes j existentes como instncias de novas classes. Sob este aspecto as classes originais ficam contidas nas novas classes

Iniciao ao Java Mrcio F. Campos

Em Java: um exemplo do computador


public class Teclado { // varveis de objeto private String numero_serie; private String formato; // construtor public Teclado (String numero_serie, String formato) { this.numero_serie = numero_serie; this.formato = formato; } }

Cdigo 5.1 - Classe Teclado

Iniciao ao Java Mrcio F. Campos

Outra classe: gabinete


public class Gabinete { // varveis de objeto private String patrimonio; private String formato; // construtor public Gabinete (String patrimonio, String formato) { this.patrimonio = patrimonio; this.formato = formato; } }

Cdigo 5.2 - Classe Gabinete

Iniciao ao Java Mrcio F. Campos

Mais uma classe: Mouse


public class Mouse { // varveis de objeto private String numero_serie; private String tecnologia; // construtor public Mouse (String numero_serie, String tecnologia) { this.numero_serie = numero_serie; this.tecnologia = tecnologia; } }

Cdigo 5.3 - Classe Mouse

Iniciao ao Java Mrcio F. Campos

A classe Monitor
public class Monitor { // varveis de objeto private String numero_serie; private String fabricante; // construtor public Monitor (String numero_serie, String fabricante) { this.numero_serie = numero_serie; this.fabricante = fabricante; } }

Cdigo 5.4 - Classe Monitor

Iniciao ao Java Mrcio F. Campos

Por fim...a classe computador.


public class Computador { // varveis de objeto private String sala; private String usuario; private int numero_computador; private Teclado umTeclado; private Gabinete umGabinete; private Mouse umMouse; private Monitor umMonitor; // construtor public Computador (String sala, String usuario, int numero_computador,Teclado umTeclado, Gabinete umGabinete, Mouse umMouse, Monitor umMonitor ) { this.sala = sala; this.usuario = usuario; this.numero_computador = numero_computador; this.umTeclado = umTeclado; this.umGabinete = umGabinete; this.umMouse = umMouse; this.umMonitor = umMonitor; } }

Iniciao ao Java Mrcio F. Campos Cdigo 5.5 - Classe Computador

Verifique!
No cdigo 5.1 a 5.4 forma criadas classes que em sua essncia no dependem de outras classes para sua existncia.
Entretanto, a classe Computador na realidade uma composio de outras classes. Essa abordagem de criao de objetos maiores a partir de objetos menores possibilita a existncia de independente dos objetos menores com seus prprios mtodos e atributos
Iniciao ao Java Mrcio F. Campos

Executando as classes
Public class ExemploDelegacoComposicao { // mtodo da classe Public static void main (String args[]) { Teclado umTeclado = new Teclado(12345SN, ABNT); Gabinete umGabinete = new Gabinete(PTR0725, ATX); Mouse umMouse = new Mouse(4567SN, infravermelho); Monitor umMonitor = new Monitor(1011SN, DELL); Computador umComputador = new Computador(217, Mrcio, 15, umTeclado, umGabinete, umMouse, umMonitor); } }

Cdigo 5.6 - Classe ExemploDelegacaoComposicao

Iniciao ao Java Mrcio F. Campos

Anda mungkin juga menyukai