Documente Academic
Documente Profesional
Documente Cultură
RAPORT
La lucrarea de laborator Nr. 1
Disciplina: IPP
Chişinău 2016
1. Noţiuni generale
Un sablon reprezintă o soluţie comună a unei probleme într-un anumit context.
Importanţa şabloanelor (standardelor) în construirea sistemelor complexe a fost de mult
recunoscută în alte discipline. În cadrul comunităţii proiectanţilor de software OO (orientate pe
obiecte) ideea de a aplica şabloane se pare că a fost inspirată de propunerea unui arhitect,
Christopher Alexander, care a lansat iniţiativa folosirii unui limbaj bazat pe sabloane pentru
proiectarea clădirilor şi a oraselor. Acesta afirma că: "Fiecare şablon descrie o problemă care
apare mereu în domeniul nostru de activitate şi indică esenţa soluţiei acelei probleme într-un mod
care permite utilizarea soluţiei de nenumărate ori în contexte diferite".
Deşi în domeniul sistemelor OO soluţiile sunt exprimate în termeni de obiecte şi interfeţe (în loc
de ziduri, uşi, grinzi etc), esenţa noţiunii de sablon este aceeaşi, adică de soluţie a unei probleme
într-un context dat.
2. Şabloane Creaţionale
În ingineria software, şabloanele creaţionale sunt şabloane care descriu mecanismele de creare
a obiectelor, încercînd de a crea obiecte într-un mod adecvat situației. Forma de bază a creației
obiectelor ar putea duce la probleme de design sau adăuga complexitate. Şabloanele creaţionale
rezolvă această problemă controlînd într-o oarecare măsură creația obiectelor.
Cod Exemplu în C#
namespace AbstractFactory
{
interface IButton
{
void Paint();
}
interface IWindow
{
void Paint();
}
interface IGUIFactory
{
IButton CreateButton();
IWindow CreateWindow();
}
2
{
return new LinuxWindow();
}
}
class Program
{
static void Main()
{
IGUIFactory factory = new LinuxFactory();
IButton btn = factory.CreateButton();
IWindow wnd = factory.CreateWindow();
btn.Paint();
wnd.Paint();
Console.WriteLine();
Console.ReadKey();
}
}
}
Exemplu de execuţie
3
2.2. Şablonul Factory Method
Definiţie
Acest sablon defineşte o interfaţă pentru crearea unui obiect, dar lasă subclasele să decidă ce
clasă trebuie instanţiată. Practic, presupune că o clasă pasează subclaselor sale sarcina instanţierii
Diagrama claselor
Cod Exemplu în C#
namespace FactoryMethod
{
Console.Read();
}
}
}
Exemplu de execuţie
Concluzie:
Implementarea şabloanelor de proiectare oferă numeroase avantaje în procesul de
dezvoltare. Şabloanele Creaţionale fac procesul de creare mai adaptabil și dinamic. În special, ele
pot oferi o mare flexibilitate cu privire la care obiecte sunt create, cum sunt create aceste obiecte,
și modul în care sunt inițializate.