A teraz mi prosim vysvetlite, ako inak sa da v class based jazyku vytvorit "servisny objekt" bez tej "servisnej triedy", ktora je "jen pouhá šablona" s jeho implementaciou?
V class based jazyku musíš vytvořit třídu, v ostatních nemusíš. Výsledkem je v obou případech servisní objekt.
Nevim jiste, jestli je to ten pripad o kterem se bavite, ale treba ve Scale se trida nutne explicitne nevytvari, programator vytvari "object" a to je uz ta instance (tridu za nej vytvori prekladac).
Iste, aj v notoricky ukecanom triedovom jazyku Džavá, ktory tiez bezi na JVM, mozete mat anonymne triedy, ktore za vas dogeneruje kompiler.
Alebo este lepsie, pokial je vas servis vyjadritelny rozhranim s jednou metodou - je to tzv. SAM (single abstract method) rozhranie, tak cela implementacia takehoto servisu v Džavé moze byt vyjadrena jednou jedinou lambdou. V takom pripade kompiler dokonca ani triedu nevytvori. To sa odlozi na neskor a triedu vytvori Džavá az pri incializacii lambdy v bootstrap metode cez ASM kniznicu pocas runtime. Kazdopadne, konkretna trieda vznike a vznike aj najmenej jedna instancia lambdy (podla toho ci je bezstavova alebo potrebuje pristupovat do lexikalneho scope triedy v ktorej bola zadeklarovana a ci pristupuje k statickym alebo instancnym fieldom).
Som zvedavy ako by lokalni puristi nazvali implementaciu servisu cez lambdu. Servisna lambda? Ked pouzijete spojenie "instancia servisu", je vam jedno ci bol naimplementovany pomocou neanonymnej alebo anonymnej triedy alebo lambdy, ci je to lokalna instancia alebo bezi na druhej strane zemegule v Ruby a vy s nim komunikujete cez nejaky proxy po sieti.
Preto si myslim, ze Magda spojenim "servisna trieda" myslela konkretny jazyk a konkretny sposob implementacie servisov v nom. Jediny problem je, ze neuviedla, ktory jazyk.
Tak na 87% si myslim, ze Magda myslela Javu a Springovu aplikaciu s triedami anotovanymi @Service.