This shows you the differences between two versions of the page.
poo:laboratoare:12 [2021/01/11 17:40] carmen.odubasteanu |
poo:laboratoare:12 [2021/01/11 17:57] (current) carmen.odubasteanu |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Laboratorul 12. ===== | ===== Laboratorul 12. ===== | ||
- | <hidden> | ||
- | <html> | ||
- | <iframe src="https://ocw.cs.pub.ro/courses/_media/poo/laboratoare/poo_lab12_v1.pdf" width="640" height="720"></iframe> | ||
- | </html> | ||
- | </hidden> | ||
Line 17: | Line 12: | ||
In acest caz veti avea o clasa **Product** care descrie un produs, caracterizat prin pret, care va fi float si un nume, care va fi un String. | In acest caz veti avea o clasa **Product** care descrie un produs, caracterizat prin pret, care va fi float si un nume, care va fi un String. | ||
- | In **ShopSingleton** va exista o metoda void numita **//showProducts//**, care va lista produsele din magazin. | + | In **ShopSingleton** va exista o metoda void numita **//showProducts//**, care va afisa produsele din magazin. |
- | Veti avea o clasa Test, in care veti avea urmatoarele metode: | + | Veti avea o clasa Test, in care veti avea implementate urmatoarele metode: |
* addProduct(Product) - veti adauga un produs in magazin, | * addProduct(Product) - veti adauga un produs in magazin, | ||
* removeProduct(Product) - eliminarea unui produs din magazin, | * removeProduct(Product) - eliminarea unui produs din magazin, | ||
- | * getCheapestProduct() - va returna produsul cel mai ieftin din magazin. | + | * getCheapestProduct() - va returna produsul cel mai ieftin din magazin |
+ | Si un main in care veti testa aceste metode. | ||
=== 2) Factory === | === 2) Factory === | ||
Line 35: | Line 31: | ||
=== 3) Observer === | === 3) Observer === | ||
- | Implementati un mini-sistem de notificare de utilizatori abonati la un canal Youtube. Veti implementa o clasa-subiect numita **Channel**, care va reprezenta un canal si o clasa-observator numita **User**, care va reprezenta un utilizator. | + | Implementati un mini-sistem de notificare a utilizatorilor abonati la un canal Youtube. Veti implementa o clasa-subiect numita **Channel**, care va reprezenta un canal si o clasa-observator numita **User**, care va reprezenta un utilizator. |
Clasa **Channel** va contine o lista de utilizatori abonati la canalul respectiv, un membru de tip String ce va reprezenta numele canalului si urmatoarele metode: | Clasa **Channel** va contine o lista de utilizatori abonati la canalul respectiv, un membru de tip String ce va reprezenta numele canalului si urmatoarele metode: | ||
* void subscribe (User user) - se va adauga un utilizator in lista de abonati | * void subscribe (User user) - se va adauga un utilizator in lista de abonati | ||
* void unsubscribe (User user) - se va sterge un utilizator din lista de abonati | * void unsubscribe (User user) - se va sterge un utilizator din lista de abonati | ||
* void notify (String notification) - se va trimite o notificare (mesaj de tip String) tuturor utilizatorilor din lista de abonati (de exemplu ca s-a incarcat un nou videoclip pe canal) | * void notify (String notification) - se va trimite o notificare (mesaj de tip String) tuturor utilizatorilor din lista de abonati (de exemplu ca s-a incarcat un nou videoclip pe canal) | ||
+ | Testati clasele implementate intr-un main. | ||
=== 4) Strategy === | === 4) Strategy === | ||
Line 51: | Line 48: | ||
* daca 30 <= aniVechime < 40, atunci se va folosi ThirtyStrategy | * daca 30 <= aniVechime < 40, atunci se va folosi ThirtyStrategy | ||
* daca 40 <= aniVechime, atunci se va folosi FortyStrategy | * daca 40 <= aniVechime, atunci se va folosi FortyStrategy | ||
- | * | + | Testati functionarea sistemului intr-un main. |
=== 5) Visitor === | === 5) Visitor === | ||
Line 62: | Line 60: | ||
In clasa **Cat**, la visit(Fisier), veti folosi citirea din fisiere pentru a afisa continutul unui fisier. | In clasa **Cat**, la visit(Fisier), veti folosi citirea din fisiere pentru a afisa continutul unui fisier. | ||
+ | |||
+ | <hidden> | ||
<HTML> | <HTML> | ||
<iframe src="https://ocw.cs.pub.ro/courses/_media/poo/laboratoare/lab12_var_final.pdf" width="640" height="720"></iframe> | <iframe src="https://ocw.cs.pub.ro/courses/_media/poo/laboratoare/lab12_var_final.pdf" width="640" height="720"></iframe> | ||
</HTML> | </HTML> | ||
+ | |||
+ | <html> | ||
+ | <iframe src="https://ocw.cs.pub.ro/courses/_media/poo/laboratoare/poo_lab12_v1.pdf" width="640" height="720"></iframe> | ||
+ | </html> | ||
+ | </hidden> | ||
<hidden> | <hidden> |