Prymek:
Volani metody není nic jineho, nez implementace obecného OOP konceptu zaslani zprávy, je to synchronni zprava s volitelnou navratovou hodnotou. Klidopido je možno zasilat pozadavky přes frontu, kde bude zarovka subscribovana, na vlastnim nechanismu to nemeni nic.
OOP model zarovka s metodami rozsvit, zhasni je naprosto korektni model. Nechapu blaboleni, proc by jako zarovka mela sama něco delat, zarovka je pouze objektem, se kterym se manipuluje. Iniciatorem akce je objekt Osoba, která implementuje Runnable.run a zde je kod manipulujici se zarovkou.
Zkousel jsem to dneska rano v koupelne, byl jsem tam ja, zena a deti a normalne to fungovalo, zarovka svitila presne podle pozadavku.
Blaboly o threadech jsou mimo misu OOP, prislusne metody se daji synchronized, coz je implementacni detail, klidne muze byt OOP jazyk, co ma volani metod synchronizovane defaultne a krome rychlosti to nicemu vadit nebude.
Model zarovka je naprosto validni s omezením, ze funguje pouze pro konfiguraci jeden vypinac s jednou zarovkou, model zarovka defacto obsahuje celou tuto kompozici.
V realnem svete bude potreba model Okruh, který ma vypinace, které přes definovanou logiku ovladaji zarovky, takhle se pokryjou i schodistaky. A objekty Osoba budou manipulovat s vypinaci. Problem solved, jednoduche jak varic, prosty model realneho světa, vic hovadin vymyslet netreba.
Chapu, ze mezi nami ziji lide, kteří ziji ve svete, ve kterem pokojem vede trubka s protekajicimi funkcemi, které si obcas vezmou zhaslou zarovku a vymeni ji za jinou, rozsvicenou, muj svet je ale objektovy.