Sunteți pe pagina 1din 3

Universitatea Tehnica a Moldovei

Facultatea Calculatoare, Informatica si Microelectronica


Departamentul Inginerie Software si Automatica

RAPORT

Lucrarea de laborator № 4

Tehnici și mecanisme de proiectare software


Tema: Șablonul Facade

A efectuat: Iluța Ciprian, st. gr. TI-173


A verificat: l.u. Sergiu Scrob

Chișinău 2020
1.Scopul:

Studierea domeniului ales anterior si anume tema “Elaborarea unui joc de


șah” și identificarea unei probleme de proiectare care poate fi soluționată cu
ajutorul unui șablon de proiectare din clasa șabloanelor creaționale. Implementarea
soluției într-un limbaj de programare orientat pe obiecte. Elaborarea diagramei de
clase UML care corespunde cu soluția implementată, a unui șablon din clasa
creațională. Descrieți problema identificată, motivația, participanții și rolurile lor în
șablonul utilizat. 

2. Șabloane structurale
Șablonul Facade (Fațadă):
Furnizează o interfață unificată pentru un set de interfețe într-un subsistem.
Fațada definește o interfață de nivel superior, care face subsistemul mai ușor de
utilizat.

Figura 1. Diagrama UML

1. class DisplayBlackPieces:  
2.     def displayBlack(self):  
3.         print("Black Pieces: ♚ ♛ ♜ ♝ ♞ ♟")  
4.   
5.   
6. class DisplayWhitePieces:  
7.     def displayWhite(self):  
8.         print("White Pieces: ♔ ♕ ♖ ♗ ♘ ♙")  
9.   
10.   
11. class DisplayTable:  
12.     def displayTable(self):  
13.         print("  ╔══════════════════════╗\n"  
14.               "8 ║♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ \n"  
15.               "7 ║♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ \n"  
16.               "6 ║… … … … … … … … … … … \n"  
17.               "5 ║… … … … … … … … … … … \n"  
18.               "4 ║… … … … … … … … … … … \n"  
19.               "3 ║… … … … … … … … … … … \n"  
20.               "2 ║♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙\n"  
21.               "1 ║♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ \n"  
22.               "  ╚══════════════════════╝")  
23.   
24.   
25. class CreateExample:  
26.   
27.     def __init__(self):  
28.         self.displayWhitePieces = DisplayWhitePieces()  
29.         self.displayBlackPieces = DisplayBlackPieces()  
30.         self.displayTable = DisplayTable()  
31.   
32.     def create(self):  
33.         self.displayWhitePieces.displayWhite()  
34.         self.displayBlackPieces.displayBlack()  
35.         self.displayTable.displayTable()  
36.   
37.   
38. example = CreateExample()  
39. example.create()  

3.Problema soluționată
În aplicația de mai sus am aplicat modelul de proiectar Facade cu scopul de
a uni mai multe componente în unul singur. Cu ajutorul Facadei am afișat tabla de
șah și piesele după culoare impărțindule astfel în subsisteme. Acest lucru ușurează
înțelegerea codului deoarece el estre structurat mai bine.
4.Concluzie
În urma efectuării acestei lucrări de laborator am studiat si analizat șablonul
de proiectare Facade pe care l-am implementat în cadrul temei alese. Am studiat
posibilitatile de implementare ale acestui șablon dar și însăși conceptul șablonului
după care l-am implementat cu ajutorul limbajului Python.