Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Sabloane de comportament

java



+ Font mai mare | - Font mai mic



Sabloane de comportament

 

1.COMMAND



  • Inglobeaza cererea pentru o actiune specifica in interiorul unui obiect cu o interfata publica; clientul are astfel posibilitatea de a efectua cereri fara sa fie obligat sa stie exact ce actiuni vor fi executate ca raspuns la cererea sa, permitand astfel modificarea actiunilor -cand este necesar- fara a modifica si codul client;

  • Fiecare obiect isi primeste propriile comenzi in mod direct, prin intermediul unui obiect de tip Command, acesta din urma are intotdeauna o metoda Execute() ce este apelata la aparitia unei cereri, si care este definita de fiecare obiect apelat in parte;

  • Este utila cand se doreste separarea unei interfete grafice de actiunile initiate de catre interfata (exemplul 2), la trecerea intr-o coada de asteptare a acelor actiuni ce necesita resurse ocupate momentan (ex1), sau la operatii de tip Undo.

Diagrama.

Exemple.

1.(B.Eckel)

//: command:CommandPattern.java

package command;

import java.util.*;

import junit.framework.*;

 

interface Command

 

class Hello implements Command

}

 

class World implements Command

}

 

class IAm implements Command

}

 

// An object that holds commands:

class Macro

  public void run()

}

 

public class CommandPattern extends TestCase  

  public static void main(String args[])

} ///:~

2.(J.Cooper)

Fie un program cu doua optiuni de meniu (deschiderea unui fisier si iesirea din program) si un buton "OK" care coloreaza fundalul in rosu.

La crearea unei interfete grafice in Java, partea de ascultare a evenimentelor consta, de obicei, dintr-o serie de if-uri pentru identificarea obiectului selectat, ca in secventa urmatoare:

public void actionPerformed(ActionEvent e)

Metodele apelate sunt:

private void exitClicked()

//-----------------------------------------

private void fileOpen()

//-----------------------------------------

private void redClicked()

Folosind sablonul Command:

public interface Command ,

metoda actionPerformed se reduce la:

public void actionPerformed(ActionEvent e)

(am evitat astfel un sir neelegant de if-uri, decupland in acelasi timp obiectul client de obiectul care trateaza cererea.)

Construirea obiectelor de tip Command

class btnRedCommand extends Button implements Command

public void Execute()

}

//------------------------------------------

class fileExitCommand extends MenuItem implements Command

public void Execute()

}

class Asc implements ActionListener{

public void actionPerformed(ActionEvent e)

}

act=new Asc();

mnuOpen.addActionListener(act);

mnuExit.addActionListener(act);

btnRed.addActionListener(act);

Clasele de mai sus pot deveni independente daca li se trimit parametrii necesari (ferestre, panouri. asupra carora acestea actioneaza):

mnuOpen = new fileOpenCommand('Open', this);

mnuFile.add(mnuOpen);

mnuExit = new fileExitCommand('Exit');

mnuFile.add(mnuExit);

p = new Panel();

add(p);

btnRed = new btnRedCommand('Red', p);

p.add(btnRed);

.

Tema Realizati o interfata grafica in Swing cu 3 submeniuri: primul ("Produse") si al doilea ("Clienti") cu cate doua optiuni, iar al treilea pentru iesirea din program. Selectarea unei optiuni a primelor doua submeniuri determina modificarea corespunzatoare a cate unei etichete din panoul ferestrei (Client: Ionescu; Produs: Portocale). In dreapta etichetelor exista un buton "OK" ce determina afisarea informatiei din acestea la consola. Folositi Command.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2243
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved