Sunteți pe pagina 1din 4

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare Informatica si
Microelectronica Departamentul Ingineria
Software si Automatica

RAPORT
Disciplina: TMPS
Tema: Bridge Pattern

A efectuat: Guzun Ion


st. gr. TI-171

A verificat: Scrob Sergiu

Chisinau 2020
Scopul lucrarii:
Studierea domeniului de interes (tema individuală a studentului) și identificarea unei probleme
de proiectare diferită de cea din Lucrarea 3, care poate fi soluționată cu ajutorul unui șablon de
proiectare din clasa șabloanelor structurale, diferit de cel utilizat în Lucrarea 3. 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 structurală. Descrieți problema
identificată, motivația, participanții și rolurile lor în șablonul utilizat, de asemenea includeți
rezultatele execuției programului.Diagrama UML:

Figura 1 – Diagrama UML

Problema:
In orice proiect, aplicatie, platforma apar intrebari, sablonul bridge, ne va ajuta ca 2
componente, clientul si serviciul, sa poata lucra concomitent la aceiasi interfata.

Codul java:
Crearea interfetei Intrebari, care permite navigatia de la intrebare la alta:
public interface Intrebari {
public void IntrebareaUrmatoare();
public void IntrebareaPrecedenta();
public void IntrebareNoua(String intreb);
public void StergeIntrebare(String intreb);
public void AfisareIntrebare();
public void AfisareToate();
}

Crearea clasei IntrebariJob care va implementa interfata Intrebari:


import java.util.ArrayList;
import java.util.List;
public class IntrebariJob implements Intrebari {
private List <String> intrebari = new ArrayList<String>();
private int curent = 0;
public IntrebariJob(){
questions.add("Ce este un job? ");
questions.add("Ce este un CV? ");
questions.add("Cum indeplnesc un CV? ");
questions.add("Cum stiu ca am fost acceptat la interviu de companie? ");
questions.add("La cate companii pot trimite CV simultan? ");
questions.add("Unde gasesc contactele companiei? ");
questions.add("Sunt in siguranta datele personale pe aceasta platforma? ");
questions.add("Cum obtin postul dorit cat mai rapid? ");
}
public void IntrebareaUrmatoare() {
if( curent <= intrebari.size()-1 )
curent++;
System.out.print(current);
}

public void IntrebareaPrecedenta() {


if( curent > 0 )
curent--;
}

public void IntrebareNoua(String intreb) {


intrebari.add(intreb);
}

public void StergeIntrebare(String intreb) {


intrebari.remove(intreb);
}

public void AfisareIntrebari() {


System.out.println( intrebari.get(curent) );
}
public void AfisareToate() {
for (String intreb : intrebari) {
System.out.println(intreb);
}
}
}

Creare clasa ManagerIntrebari care va folosi interfata Intrebari care va fi ca Bridge:


public class ManagerIntrebari {
protected Intrebari i;
public String catalog;
public ManagerIntrebari(String catalog) {
this.catalog=catalog;
}
public void urmatoarea() {
i.IntrebareaUrmatoare();
}
public void precedena() {
i.IntrebareaPrecedenta();
}
public void intrebnoua(String intreb) {
i.IntrebareNoua(intreb);
}
public void sterge(String intreb) {
i.StergeIntrebare(intreb);
}
public void afisare() {
i.AfisareIntrebare();
}
public void afisaretoate() {
System.out.println("Numarul de intrebari: " + catalog);
i.AfisareToate();
}
}

Crearea clasei FormatIntrebare care va extinde ManagerIntrebari:


public class FormatInrebare extends ManagerIntrebari {
public FormatInrebare(String catalog){
super(catalog);
}
public void afisaretoate() {
System.out.println("\n---------------------------------------------------------");
super.afisaretoate();
System.out.println("-----------------------------------------------------------");
}
}

Crearea clasei BridgePattern:


public class BridgePatten {
public static void main(String[] args) {
FormatIntrebare intrebari = new FormatIntrebari("Platforma de cautare a joburilor");
intrebari.i = new IntrebariJob();
intrebari.sterge("Ce este un job? ");
intrebari.afisare();
intrebari.intrebarenoua("Unde pot gasi un job? ");

intrebari.intrebarenoua("Cate joburi pot gasi pe platforma?");


intrebari.afisaretoate();
}
}