Visa ett inlägg
Oläst 2009-02-10, 22:16 #3
Onkelborg Onkelborg är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 382
Onkelborg Onkelborg är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 382
Jag skulle nog nästan föreslå en lite mer "lös" variant än att köra med olika interface, det tillkommer en massa komplexa problem med interface då man snabbt får beroenden på alla möjliga håll (forumet <-> pm t.ex), och vad händer om man vill byta ut pm-modulen? Måste man uppdatera forummodulen så den implementerar ett annat interface då?

En variant jag själv tror mer på är att definera ett interface som alla implementerar. Det har en/flera metoder för att hantera händelser. Den första parametern är förslagsvis id:t på händelsen (t.ex. "forum_sent_message"), och alla som vill bry sig om händelsen kör då valfri kod.

En annan variant är att också då köra med ett interface, men istället ha tre/flera metoder. Man kör samma variant som den jag nämnde nyss, men man har ytterligare två metoder, varav en som enbart returnerar vilka händelser som någonsin kan vara intressanta, och en som returnerar vilka händelser som pluginer någonsin kan generera. Pluginsystemet lägger sedan upp listor för varje händelse, och fyller listorna med de plugin som det är värt att fråga. Man vinner exekveringstid där då man slipper exekvera en massa kod i nödan för varje händelse.

Nackdelen med att koppla löst är att man förlorar typsäkerhet, å andra sidan är olika komponenter inte så beroende av varandra; vill man plocka bort pm så behöver man inte strula med forumet (vilket, som jag förstått, är lite tanken bakom det hela)
Onkelborg är inte uppkopplad   Svara med citatSvara med citat