Documente Academic
Documente Profesional
Documente Cultură
Design Patterns
Design Patterns
Raport
Lucrarea de laborator Nr.1
la disciplina:
Ingineria produselor program
Tema:
Implementarea abloanelor de proiectare creaionale
Chiinu 2017
Cuprins
ablonul Singletone....................................................................................................................... 3
ablonul Singletone
Motivaie: ntr-un sistem de operare: n exista un sistem de fiiere n exista un singur manager de
ferestre n.
Aplicabilitate: cnd trebuie s existe exact o instanta clientii clasei trebuie sa aiba acces la instanta
din orice punct bine definit abloane de proiectare
Structura:
Participant: Singleton
colaborari: clientii clasei
Consecine: acces controlat la instanta unica
reducerea spaiului de nume (eliminarea variab. globale)
permite rafinarea operaiilor si reprezentrii
permite un numar variabil de insante
mai flexibila dect operaiile la nivel de clas (statice)
Implementare:
public class Datasource {
if (instance == null) {
instance = new Datasource();
}
return instance;
}
}
System.out.println(ds);
}
}
Sablonul prototip
Sablonul prototype este un sablon creational. Este utilizat cind tipul obiectelor pentru creare este
determinat de o instant prototip, care este clonat pentru a produce obiect nou. Sablonul este
utilizat pentru:
Evitarea costului de a crea obiecte noi in mod standard utilizind cuvintul cheie new atunci
cind resursele sunt costisitoare.
Pentru a implementa sablonul, se declara o clasa de baza abstracta care specifica metoda clone
care implementeaza clonarea obiectului.
interface Prototype {
public EmployeeRecord(){
System.out.println(" Employee Records of Oracle Corporation ");
System.out.println("---------------------------------------------");
System.out.println("Eid"+"\t"+"Ename"+"\t"+"Edesignation"+"\t"+"Esalary"+"\t\
t"+"Eaddress");
this();
this.id = id;
this.name = name;
this.designation = designation;
this.salary = salary;
this.address = address;
}
System.out.println(id+"\t"+name+"\t"+designation+"\t"+salary+"\t"+address);
}
@Override
public Prototype getClone() {
Factory method
Definirea intefetei pentru crearea obiectului, dar subclasele decid care clasa de instantiate.
Factory Method permite subclaselor sa instantieze obiecte.
class GetPlanFactory{
interface AbstractWidgetFactory{
public Window createWindow();
}
BUILDER
public class GUIBuilder{
public void buildWindow(AbstractWidgetFactory widgetFactory){
Window window = widgetFactory.createWindow();
window.setTitle("New Window");
}
}
Concluzie
abloanele ne ajut pentru proiectarea corect a arhitecturii unei aplicaii. abloanele se
utilizeaz n dependen de problemele de proiectare care apar n procesul dezvoltrii unui proiect.
ablonul Singleton se utilizeaz pentru a rezolva problema de crearea unei singure
instane a unei clase. Abstract factory creaz o instan a mai multor familii de clase. Builder separ
reprezentarea obiectului de construirea lui. Factory method creaza instane a mai multor clase
derivate. Prototype creaz clone de obiecte pentru a utiliza resursele eficient.