Abstract Factory - Factory Method

Curs
7/10 (1 vot)
Conține 1 fișier: doc
Pagini : 7 în total
Cuvinte : 2148
Mărime: 11.39KB (arhivat)
Publicat de: Panait Dumitru
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: ovidiu aritoni

Extras din curs

Definitie

Ofera o interfata pentru crearea unor familii de obiecte inrudite sau dependente intre ele, fara a specifica clasa lor concreta. Se mai numeste si kit.

Context

Consideram un generator de interfete grafice utilizator (GUI) care ofera suport pentru standarde multiple privind modul de prezentare a elementelor interfetei. Exemple de asemenea standarde sunt: Motif, Presentation Manager (PM) etc. Diferitele moduri de prezentare ("look & feel") definesc diferite stiluri si modalitati de comportare ale elementelor de control (bare de defilare, ferestre, butoane, meniuri etc). Pentru a asigura portabilitatea intre diferitele standarde, o aplicatie nu trebuie sa fixeze prin cod un anumit tip de elemente de control.

Problema se poate rezolva prin definirea unei clase abstracte, pe care o vom numi WidgetFactory si care declara o interfata pentru crearea fiecarui element de control GUI. Pentru fiecare element de control va exista cate o clasa abstracta care il modeleaza (de exemplu: Window, ScrollBar) precum si mai multe clase concrete, corespunzatoare diverselor standarde de prezentare. Interfata WidgetFactory are cate o operatie care returneaza un nou obiect din fiecare clasa abstracta ce modeleaza un element de control. Clientii vor apela aceste operatii pentru a obtine instante ale elementelor de control, fara sa le "pese" de standardul de prezentare, deci fara a sti la ce clase concrete apartin acele instante.

Pentru fiecare standard de prezentare exista cate o subclasa concreta a lui WidgetFactory care implementeaza operatiile de creare a elementelor de control conform standardului respectiv. In felul acesta se forteaza o anumita dependenta intre clasele concrete care tin de un anumit standard de prezentare, evitandu-se situatii in care unei ferestre Motif de exemplu, i se ataseaza o bara de defilare PM.

Motivatii

Sablonul Abstract Factory se utilizeaza cand:

un sistem trebuie sa fie independent de modul in care produsele sale sunt create, compuse si reprezentate;

un sistem trebuie sa fie configurat la un moment dat cu una din mai multe familii de produse;

trebuie fortata restrictia ca produsele dintr-o anumita familie sa fie utilizate impreuna si nu amestecate cu produsele altei familii;

se doreste crearea unei biblioteci de produse pentru care sunt relevante doar interfetele, nu si implementarile (de exemplu, in cazul generatorului de interfete analizat mai inainte, nu ne intereseaza cum sunt desenate pe ecran diversele elemente de control, ci doar care sunt efectele actionarii lor de catre utilizator si aceste efecte sunt asemenatoare, indiferent de standardul de prezentare).

* AbstractFactory - declara o interfata pentru operatii de creare a produselor abstracte;

* ConcreteFactory - implementeaza operatiile de creare a produselor concrete;

* AbstractProduct - declara o interfata pentru o categorie de produse;

* ConcreteProduct

o defineste un produs care va fi creat de un obiect ConcreteFactory corespunzator;

o implementeaza interfata AbstractProduct;

* Client - utilizeaza doar interfetele AbstractFactory si AbstractProduct.

In mod normal, la executie se creaza cate o singura instanta a claselor ConcreteFactory. Aceste instante vor crea produse avand o implementare particulara. Pentru a obtine produse diferite, clientii trebuie sa utilizeze alte clase ConcreteFactory. Clasa AbstractFactory paseaza sarcina crearii produselor spre subclasele ei ConcreteFactory.

Preview document

Abstract Factory - Factory Method - Pagina 1
Abstract Factory - Factory Method - Pagina 2
Abstract Factory - Factory Method - Pagina 3
Abstract Factory - Factory Method - Pagina 4
Abstract Factory - Factory Method - Pagina 5
Abstract Factory - Factory Method - Pagina 6
Abstract Factory - Factory Method - Pagina 7

Conținut arhivă zip

  • Abstract Factory - Factory Method.doc

Alții au mai descărcat și

Sistemele expert - inteligență artificială

Sistemele expert sunt produse ale inteligentei artificiale, ramura a stiintei calculatoarelor ce urmareste dezvoltarea de programe inteligente....

Roboți Industriali

1. NOTIUNI GENERALE PRIVIND ROBOTII INDUSTRIALI 1.1. Definitii si notiuni uzuale utilizate Cuvântul `robot` a fost folosit pentru prima datã în...

Inteligență artificială - capitolul 1-strategii de căutare

Strategia de cautare pe nivel în spatiul starilor Strategia de cautare pe nivel (în latime, breadth-first search) este o strategie de cautare...

Inteligență artificială

Inteligenta artificiala 1 Concepte de baza Când s-a vorbit prima data de Inteligenta Artificiala (AI  Artificial Intelligence) în 1956, totul...

Sisteme Expert - Curs 2

Definitie: Un sistem expert este un program ce utilizeaza cunoasterea si procedurile de inferenta (deductie logica) pentru rezolvarea problemelor...

Învățarea automată

Invatare automata. Agenti care invata. Clasificarea metodelor şi tehnicilor Dupa modul de fundamentare empirică: -metode şi tehnici de calcul...

Sisteme Multimedia Distribuite

5.1 Arhitecturi ale sistemelor multimedia distribuite Cele mai folosite arhitecturi pentru sistemele multimedia distribuite sunt: arhitectura...

Introducere în inteligență artificială

Obiectivul inteligentei artificiale - Construirea de artefacte (entitati artificiale) inteligente, pentru: - Obtinerea de avantaje prin...

Te-ar putea interesa și

Șabloane de proiectare a interfețelor utilizator pentru aplicații web

Capitolul 1 Introducere Lucrarea prezinta sabloanele de proiectare , ce sunt acestea si cum ne ajuta ele in rezolvarea problemelor de proiectare...

Design Paterns - Creational Paterns

Scopul referatului Acest referat are drept scop realizarea unei imagini de ansamblu asupra asa numitelor “Design Patterns – Creational Patterns”....

ISP Seminar3

1.1.FACTORY · Returneaza o instanta a unei clase (dintre mai multe posibile), in functie de datele trimise ca parametri. De obicei clasele...

Șabloane de proiectare

The Plan • Introducing fundamental patterns (1 week) • 21 design patterns will be covered based on the case study presented in the text book...

Ai nevoie de altceva?