Jak nahradit presenter v komplexní aplikaci?
- Jerry123456789
- Člen | 37
Ahoj, mám rozpracovaný návrh na jednu větší aplikaci (konkrétně jde o velice komplexní hru, ale o tom až jindy :) ) a přemýšlím o tom, jak stvořit jádro. Nechci vytvářet množství presenterů plných kódu pro různé akce a raději bych logiku přesunul úplně jinam:
- 1 presenter, widgetem renderovaná komponenta která by dostala veškerá vstupní data a vykreslila je?
- z presenteru volat externí třídu která by data vrátila/vypsala rovnou?
- tu externí třídu udělat rovnou jako 1 velice komplexní presenter?
Co myslíte, že by bylo nejvhodnější?
Mimochodem, podle předběžných výpočtů ta aplikace bude opravdu masivní, takže jde o rychlost…
- Majkl578
- Moderator | 1364
Pokud jde o logiku, která má být použita napříč aplikací a to třeba
i v modelech, volil bych extra třídu, popř. třídy.
Naopak pro něco, co by se používalo napříč presentery by se hodila
komponenta. (To z toho co píšeš zní jako ideální řešení.)
Pokud jde o jednorázovku, tak bych to dal do presenteru.
- Blizzy
- Člen | 149
Samozřejmě neznám přesně tvou konkrétní situaci, ale ono jádro bych přesunul do modelové vrstvy, kde bude probíhat všechna logika, ta je pod nejmenší režií Nette frameworku, můžeš tam mít tříd kolik chceš.
Samotné prezentery by se starali až o předávání dat šablonám a interakci s uživatelem (prostě systém odkazů, a akcí), když uživatel něco udělá, projde to skrz presenter do tvých tříd v modelové vrstvě a ty to zpracují. Presentery by tak vůbec nemuseli být komplexní, prostě je to „jen“ mezivrstva mezi uživatelem a aplikací.
Jeden složitý presenter je podle mě špatný návrh, mnohem lepší je více (jakkoliv malých) presenterů a komponent (controlů).
Většina důležitého kódu by měla být v modelu.
- Jerry123456789
- Člen | 37
Blizzy: Máš pravdu, takhle to asi bude nejlepší.
Díky oběma
Editoval Jerry123456789 (5. 7. 2010 14:48)