User Tools

Site Tools


Problem constructing authldap
laboratoare:static-final
Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
laboratoare:static-final [2019/10/19 21:14]
Adriana Draghici [Exerciții]
laboratoare:static-final [2019/10/20 14:54]
Radu Matei [Exerciții]
Line 295: Line 295:
     * o constantă MAGIC_NUMBER având orice valoare doriți ​     * o constantă MAGIC_NUMBER având orice valoare doriți ​
     * un String constant MAGIC_STRING,​ lung de minim 20 de caractere, generat random     * un String constant MAGIC_STRING,​ lung de minim 20 de caractere, generat random
-    * un constructor care primește: un String numit ''​firstName'',​ un String numit ''​lastName''​ și un int numit ''​age'' ​+    * un constructor care primește: un String numit ''​name''​
     * o metodă ''​getPassword()''​ care va returna parola ​     * o metodă ''​getPassword()''​ care va returna parola ​
-      * parola se construiește concatenand următoarele șiruri: ​ +      * parola se construiește concatenand următoarele șiruri:
-        * șirul format din ultimele ''​(age % 3)''​ litere din firstName+
         * un șir random de lungime MAGIC_NUMBER,​ generat cu ''​RandomStringGenerator''​ și cu un alfabet obținut din 10 caractere obținute random din MAGIC_STRING         * un șir random de lungime MAGIC_NUMBER,​ generat cu ''​RandomStringGenerator''​ și cu un alfabet obținut din 10 caractere obținute random din MAGIC_STRING
-        * și șirul format prin conversia la String a numărului (age + lungimea ​lui lastName).+        * și șirul format prin conversia la String a lungimii ​lui name + un numar intreg generat random din intervalul [0,100]
     * Pentru subșiruri și alte metode utile consultați documentația clasei [[http://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​String.html | String]]     * Pentru subșiruri și alte metode utile consultați documentația clasei [[http://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​String.html | String]]
-  - (**3p**) ​Modificati ​implementarea clasei PasswordMaker astfel ​incat sa respecte conceptul de **Singleton pattern** (sa permita instantierea ​unei singur obiect) +  - (**3p**) ​Modificați ​implementarea clasei PasswordMaker astfel ​încât să respecte conceptul de **Singleton pattern** (să permită instanțierea ​unei singur obiect) 
-        * Implementati ​Singleton ​pattern folosind conceptul ​de Eager Initialization (singura ​instanta ​a clasei este creata ​la pornirea ​aplicatiei, indiferent ​daca este necesar sau nu) +        * Pornind de la exemplul de Singleton ​din textul laboratorului implementați o versiune care urmează principiul ​de Eager Initialization (singura ​instanța ​a clasei este creată ​la pornirea ​aplicației, indiferent ​dacă este necesar sau nu) 
-        * Modificati implementarea anterioara urmand conceptul ​de Lazy Initialization (singura instanta a clasei este creata doar atunci cand este nevoie de ea+        * Implementați o versiune ​de Singleton în care variabila ''​instance'' ​este inițializata într-un bloc static 
-  - (**3p**) Să se implementeze o clasă ''​MyImmutableArray''​ care sa contina+        * Adăugați un contor care să numere de câte ori a fost accesată metodă ''​getInstance()''​. E nevoie ​ca acest contor să fie static? 
-    * un field de ''​ArrayList<​Integer>​ immutableArray;''​ neinitializat ​in prima faza +        * //​Tema ​de gândire:// Ce se va întâmplă dacă folosim conceptul de Singleton pattern într-un program paralelizat,​ care rulează pe mai multe linii de execuție (thread-uri). Ce probleme ar putea să apară? 
-    * un constructor care primeste ​un ArrayList<​Integer> ​si copiaza ​toate elementele din acel array in ''​immutableArray''​ +  - (**3p**) Să se implementeze o clasă ''​MyImmutableArray''​ care să conțină
-    * o metoda ​getArray ​implementata in asa fel incat field-ul ''​immutableArray'' ​sa ramana ​immutable +    * un field de ''​ArrayList<​Integer>​ immutableArray;''​ neinitializat ​în primă ​faza 
-  - (**1p**) ​Testati ​clasa ''​MyImmutableArray'' ​demonstrand ​faptul ​ca instantele ​acestei clase sunt imutabile+    * un constructor care primește ​un ArrayList<​Integer> ​și copiază ​toate elementele din acel array în ''​immutableArray''​ 
 +    * o metodă ​getArray ​implementată în așa fel încât ​field-ul ''​immutableArray'' ​să rămână ​immutable 
 +  - (**1p**) ​Testați ​clasa ''​MyImmutableArray'' ​demonstrând ​faptul ​că instanțele ​acestei clase sunt imutabile
  
laboratoare/static-final.txt · Last modified: 2019/10/23 12:19 by Radu Matei