Jak nahradit presenter v komplexní aplikaci?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jerry123456789
Člen | 37
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

Blizzy: Máš pravdu, takhle to asi bude nejlepší.

Díky oběma

Editoval Jerry123456789 (5. 7. 2010 14:48)