Zdravím,
pomozte mi, znalí věci a zkušení, vyřešit mé životní dilema architektury aplikace v Javě.
Uvedu svůj dotaz na praktické situaci:
Jsem rozmazlený z knihovny Qt: když chci založit Socket server, prostě jen vytvořím novou třídu s portem na kterém se bude naslouchat, a ONO UŽ TO BĚZÍ. Jakákoliv interakce s tímto objektem je už pak přes signály a sloty. Příjde nové připojení? Vyvolá se událost. Příjde nový paket?Vyvolá se událost. Chci zastavit server? Vyvolám z nějakého objektu signál připojený na jeho slot. Architektura aplikace je jasně daná, vše je přehledné, můžu hned začít psát aplikaci kterou chci a nemusím zbytečně přemýšlet nad přehršelem možností jak něco "zbastlit".
Ovšem Java ve mně evokuje chaos. Chtěl bych psát čistě událostmi řízené aplikace, ale třídy v Javě nejsou k tomu uzpůsobeny, neboť používají se vyláním jejich metod. Např. založím-li si třídu Server, ve které pracuji se ServerScoket, musím ji spustit v samostatném vlákně, a v té třídě budu ústavičně v nějakém Whiilu zkoumat, zda něco nového nepřišlo, a následně tuto třídu spustit ve vlákně.
Jistě, mohu si psát vlastní třídy, kde veškeré interakce mezi nimi budou přes události, ale v Javě mi to příjde jako narovnávák na ohýbák, nehledě na to, že Java nemá v jazyce implementovánu přimou podporu pro eventy. (jinak, než-li přes implementaci NV Observer).
To ve mně vyvolává dilema: chci psát aplikaci, kde jednotlivé celky jsou zapouzdřeny ve smyslu OOP a jedná se o samostatně pracující jednotky, jako v Qt, jenže zároveň se do nich musím ústačně "dobývat", chapete-li mně, voláním jejich metod, často v mnou napsaném whilu. Jistě, je zde způsob: napsat každou třídu tak, že bude běžet v samostatném vlákně, jenže to domnívám se bude katastrofa hlediska výkonostního.
Prostě tento způsob Javího programování nevyvolává ve mně to, co bych si představoval od OOP, spíše bych to považoval takové napůl OOP a napůl procedurální programování.
Chápete-li, co chci říct, poraďte, jak se v tomto zorientovat, zdaž-li neznáte k tomu nějaký vhodý best-practice příklad Díky