This shows you the differences between two versions of the page.
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:45] Radu Matei [Exerciții] |
||
---|---|---|---|
Line 303: | Line 303: | ||
* 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**) Modificati implementarea clasei PasswordMaker astfel incat sa respecte conceptul de **Singleton pattern** (sa permita instantierea 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 implementati o versiune care urmeaza principiul de Eager Initialization (singura instanta a clasei este creata la pornirea aplicatiei, indiferent daca 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) | + | * Implementati o versiune de Singleton in care variabila ''instance'' este initializata intr-un bloc static |
+ | * Adaugati un contor care sa numere de cate ori a fost accesata metoda ''getInstance()''. E nevoie ca acest contor sa fie static? | ||
+ | * //Tema de gandire:// Ce se va intampla daca folosim conceptul de Singleton pattern intr-un program paralelizat, care ruleaza pe mai multe linii de executie (thread-uri). Ce probleme ar putea sa apara? | ||
- (**3p**) Să se implementeze o clasă ''MyImmutableArray'' care sa contina: | - (**3p**) Să se implementeze o clasă ''MyImmutableArray'' care sa contina: | ||
* un field de ''ArrayList<Integer> immutableArray;'' neinitializat in prima faza | * un field de ''ArrayList<Integer> immutableArray;'' neinitializat in prima faza |