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.

S-ar putea să vă placă și

  • TS Lab1
    TS Lab1
    Document3 pagini
    TS Lab1
    Ciprian Iluta
    Încă nu există evaluări
  • TSLab 4
    TSLab 4
    Document4 pagini
    TSLab 4
    Ciprian Iluta
    Încă nu există evaluări
  • TMPSLAB6
    TMPSLAB6
    Document3 pagini
    TMPSLAB6
    Ciprian Iluta
    Încă nu există evaluări
  • LL2 Iluța Ciprian
    LL2 Iluța Ciprian
    Document6 pagini
    LL2 Iluța Ciprian
    Ciprian Iluta
    Încă nu există evaluări
  • TMPSLab 4
    TMPSLab 4
    Document3 pagini
    TMPSLab 4
    Ciprian Iluta
    Încă nu există evaluări
  • SOMIPPlab RU2019
    SOMIPPlab RU2019
    Document107 pagini
    SOMIPPlab RU2019
    Klaudiu Pinzaru
    Încă nu există evaluări
  • Referat G729
    Referat G729
    Document6 pagini
    Referat G729
    Ciprian Iluta
    Încă nu există evaluări
  • Nicolcioiu A PDF
    Nicolcioiu A PDF
    Document11 pagini
    Nicolcioiu A PDF
    Lucia Sineavschi
    Încă nu există evaluări
  • Новый текстовый документ
    Новый текстовый документ
    Document1 pagină
    Новый текстовый документ
    Ciprian Iluta
    Încă nu există evaluări
  • IDWeb Lab 2
    IDWeb Lab 2
    Document2 pagini
    IDWeb Lab 2
    Ciprian Iluta
    Încă nu există evaluări
  • Laboratorul 1 SOMIPP
    Laboratorul 1 SOMIPP
    Document6 pagini
    Laboratorul 1 SOMIPP
    Ciprian Iluta
    Încă nu există evaluări
  • Linux
    Linux
    Document1 pagină
    Linux
    Ciprian Iluta
    Încă nu există evaluări
  • Pam Fix
    Pam Fix
    Document1 pagină
    Pam Fix
    Ciprian Iluta
    Încă nu există evaluări
  • Cipru
    Cipru
    Document20 pagini
    Cipru
    Ciprian Iluta
    Încă nu există evaluări
  • AMOOLAB2
    AMOOLAB2
    Document7 pagini
    AMOOLAB2
    Ciprian Iluta
    Încă nu există evaluări
  • List A Not Moldova
    List A Not Moldova
    Document18 pagini
    List A Not Moldova
    Ciprian Iluta
    Încă nu există evaluări