Sunteți pe pagina 1din 3

MINISTERUL EDUCAŢIEI, CULTURII și CERCETĂRII al REPUBLICII MOLDOVA

UNIVERSITATEA TEHNICĂ a MOLDOVEI


FACULTATEA CALCULATOARE, INFORMATICĂ și MICROELECTRONICĂ
DEPARTAMENTUL INGINERIA SOFTWARE și AUTOMATICĂ

RAPORT la lucrarea de laborator Nr. 1


Disciplina: Tehnici si Mecanisme de Proiectare Software
TEMA: Sablonul de proiectare SINGLETON

Elaborat: st. gr. TI-171 Iepuras Daniel


Verficat: conf. univ. Scrob Sergiu

Chișinău – 2020
Definitie

Modelul Singleton asigură faptul că clasa are o singură instanță și îi oferă un punct de
acces global.

Structura

Participanti

Singleton (LoadBalancer)
- definește o operație Instanță care permite clienților să acceseze instanța sa
unică. Instanța este o operație de clasă.
- responsabil pentru crearea și menținerea propriei instanțe unice.

Problemele pe care le realizeaza Singleton

1.) Sistemul nu trebuie să aibă mai mult de o singură instanță dintr-o anumită clasă.
2.) Instanța ar trebui să fie ușor accesibilă pentru toți clienții din această clasă.
3.) Crearea unui obiect la cerere, adică atunci când este necesar pentru prima dată și
nu în timpul inițializării sistemului.

Realizare:

Am implementat sablonul de proiectare Singleton pentru a realiza biblioteca


RetrofitClient care permite sa lucram cu API în aplicațiile client-server.

public class RetrofitClient {

private static Retrofit retrofit;


private static final String BASE_URL = "http://192.168.0.4:3000/";
//private static final String BASE_URL = "http://192.168.43.63:3000/";
public static ApiInterface getRetrofitInstance() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.level(HttpLoggingInterceptor.Level.BODY);

OkHttpClient httpClient = new OkHttpClient.Builder().addInterceptor(interceptor).build();


if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(httpClient)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit.create(ApiInterface.class);
}

Concluzie

In concluzie vreau sa mentionez ca sablonul de proiectare Singleton este unul din cele
mai utilizabile si realizabile sabloane de proiectare care ofera posibilitatea de
restricționare a instantiaierii unei clase și asigură existența unei singure instanțe a
clasei. De asemenea Singleton ofera un punct de acces global pentru a obține instanța
clasei.