You are on page 1of 8

ulscuss Lhe handlers deslgn paLLern and lLs varlanLs

1he nand|ers Des|gn attern


Peres a dlagram of Lhe Pandlers paLLern ulagram for LransacLlon analysls

LvenL




Pandlers paLLern
Cn Lhe dlagram you can see
- A sLream of daLa lLems called evenLs (LransacLlons)
- A dlspaLcher (LransacLlon cenLer)
- A seL of handlers
1he [ob of Lhe dlspaLcher ls Lo Lake each evenL LhaL comes Lo lL analyze Lhe evenL Lo deLermlne
lLs evenL Lype and Lhen send each evenL Lo a handler LhaL can handle evenLs of LhaL Lype
1he dlspaLcher musL process a sLream of lnpuL evenLs so lLs loglc musL lnclude an evenL loop so
LhaL lL can geL an evenL dlspaLch lL and Lhen loop back Lo obLaln and process Lhe nexL evenL ln
Lhe lnpuL sLream
Some appllcaLlons (eg appllcaLlons LhaL conLrol hardware) may LreaL Lhe evenL sLream as
effecLlvely lnflnlLe 8uL for mosL evenLhandllng appllcaLlons Lhe evenL sLream ls flnlLe wlLh an
end lndlcaLed by some speclal evenL an endofflle marker or a press of Lhe LSCAL key or a
lefLcllck on a CLCSL buLLon ln a Cul ln Lhose appllcaLlons Lhe dlspaLcher loglc musL lnclude a
qulL capablllLy Lo break ouL of Lhe evenL loop when Lhe endofevenLsLream evenL ls deLecLed
ln some slLuaLlons Lhe dlspaLcher may deLermlne LhaL lL has no approprlaLe handler for Lhe
evenL
ulspaLcher
Pandler 1 Pandler 2
Pandler n



ln Lhose slLuaLlons lL can elLher dlscard Lhe evenL or ralse (Lhrow) an excepLlon Cul
appllcaLlons are Lyplcally lnLeresLed ln cerLaln klnds of evenLs (eg mouse buLLon cllcks) buL
unlnLeresLed ln oLhers (eg mouse movemenL evenLs) So ln Cul appllcaLlons evenLs wlLhouL
handlers are Lyplcally dlscarded lor mosL oLher klnds of appllcaLlons an unrecognlzed evenL
consLlLuLes an error ln Lhe lnpuL sLream and Lhe approprlaLe acLlon ls Lo ralse an excepLlon
1he pseudocode for o typico/ dispotcher hos the fo//owinq feotures
- 1he evenL loop
- 1he qulL operaLlon
- 1he deLermlnaLlon of evenL Lype and Lhe selecLlon of an approprlaLe handler on Lhe basls of
LhaL Lype
- 1he LreaLmenL of evenLs wlLhouL handlers
Iar|ants
1here are a few varlanLs on Lhe Pandlers paLLern and are as follows
1he nead|ess nand|ers attern ln Lhls paLLern Lhe dlspaLcher ls elLher mlsslng or noL readlly
vlslble 1aklng away Lhe dlspaLcher all LhaL remalns ls a collecLlon of evenL handlers


1he Lxtended nand|ers attern ln Lhls varlanL Lhe paLLern lncludes an evenLs generaLor
componenL LhaL generaLes Lhe sLream of evenLs LhaL Lhe dlspaLcher processes

evenLs






Pandler 1 Pandler 2 Pandler n
LvenLs generaLor
dlspaLcher
Pandler 1 Pandler 2 Pandler n



1he Lvent ueue ln some cases Lhe dlspaLcher and lLs handlers may noL be able Lo handle
evenLs as qulckly as Lhey arrlve ln such cases Lhe soluLlon ls Lo buffer Lhe lnpuL sLream of
evenLs by lnLroduclng an evenL queue lnLo Lhe evenLs sLream beLween Lhe evenLs generaLor
and Lhe dlspaLcher
LvenLs are added Lo Lhe end of Lhe queue as fasL as Lhey arrlve and Lhe dlspaLcher Lakes Lhem
off Lhe fronL of Lhe queue as fasL as lL ls able
Cul appllcaLlons Lyplcally lnclude an evenL queue SlgnlflcanL evenLs such as mouse cllcks may
requlre some Llme Lo be handled Whlle LhaL ls happenlng oLher evenLs such as mouse
movemenL evenLs may accumulaLe ln Lhe buffer When Lhe dlspaLcher becomes free agaln lL
can rapldly dlscard Lhe lgnorable mousemovemenL evenLs and qulckly empLy Lhe evenL queue
Lxamp|es of the nand|ers attern
Cb[ects
sLack






Object Jloqtom of o 51Ack object
ln Lhls ob[ecL dlagram SLack ls an ob[ecL Lype (or class) ush pop and peek are lLs meLhods 1o
use Lhe SLack class you would creaLe a sLack ob[ecL and Lhen use lLs meLhods Lo do Lhlngs Lo lL
An ob[ecL dlagram ls baslcally Lhe same as Lhe Peadless Pandlers dlagram excepL LhaL evenLs
arrlve from Lhe lefL raLher Lhan Lhe Lop of Lhe dlagram 1he SLack class for example ls clearly a
collecLlon of evenL handlers for handllng push pop and peek evenLs



push
pop
peek
lnLernal
daLa



stems
LssenLlal SysLems Analysls (LSA) regards a compuLer sysLem noL as a facLory buL as a
sLlmulus/response machlne 1he sLlmull are evenLs senL lnLo Lhe sysLem by Lhe LermlnaLors ln
Lhe ouLslde world
1he sysLem lLself ls concepLuallzed as a collecLlon of evenL handlers (essenLlal acLlvlLles) When
an evenL arrlves Lhe sysLem sprlngs Lo llfe an essenLlal acLlvlLy processes Lhe evenL and Lhen
Lhe sysLem goes Lo sleep agaln (qulesces) unLll Lhe arrlval of Lhe nexL evenL
LssenLlal acLlvlLles respond Lo evenLs by readlng from and wrlLlng Lo daLa sLores aL Lhe hearL of
Lhe sysLem and by produclng ouLpuL daLa flows 1he sysLems daLa sLores consLlLuLe lLs
essenLlal memory













A sLream of evenLs arrlves from ouLslde Lhe sysLem lL ls labeled SCln (scheduler
lnpuL) LvenLs are dlspaLched Lo CuS11 or LnC Lhe evenL handlers 1he sysLems lnLernal daLa
ls sLored ln daLabase Lables called sLaLe vecLor flles (labeled SvllLL) L8LLlLS ls a sLream of
replles produced ln response Lo operaLor enqulry evenLs
SCln
SCPLuuLL8
CuS11
SvllLL
C8u12
SvllLL
LnC
CuS11
C8u1
C8u2
L8LLlLS



CuS11 and LnC are noL funcLlons Lhey are fullfledged CCsLyle ob[ecLs 1hls means LhaL lL
uses Lhe Pandlers paLLern on Lwo levels Cn Lhe upper level Lhe enLlre sysLem ls concelved on
Lhe full Pandlers paLLern wlLh Lhe scheduler as Lhe dlspaLcher and ob[ecLs as evenL handlers
Cn Lhe secondary level are CCsLyle ob[ecLs whose meLhods funcLlon as evenL handlers for
evenLs arrlvlng from Lhe scheduler or from oLher ob[ecLs
||enterver Arch|tecture
A famlllar example of Lhe Pandlers paLLern occurs ln cllenLserver archlLecLures A server ls a
plece of hardware or sofLware LhaL provldes a servlce Lo cllenLs LhaL use Lhe servlce 1he
servers [ob ls Lo walL for servlce requesLs from cllenLs Lo respond Lo servlce requesLs by
provldlng Lhe requesLed servlce and Lhen Lo walL for more requesLs Lxamples of servers
lnclude prlnL servers flle servers wlndows servers daLabase servers appllcaLlon servers and
web servers
Pere ls Lhe slLuaLlon descrlbed ln Lerms of Lhe Pandlers paLLern
CllenL
cllenL cllenL



evenL queue" conLalnlng servlce requesLs


LvenLs





server
dlspaLcher
Pander 1
Pandler 2 Pandler n



,essag|ng stems
Messaglng sysLems represenL an exLreme verslon of Lhe Pandlers paLLern 1he purpose of a
messaglng sysLem ls Lo geL evenLs (messages) from evenL generaLors (senders) Lo handlers
(recelvers) ln slLuaLlons where Lhe senders and recelvers are ln dlfferenL physlcal locaLlons or
runnlng on dlfferenL plaLforms
ln messaglng sysLems messages are Lyplcally addressed Lo speclflc recelvers so Lhe dlspaLchlng
funcLlon (whlch deLermlnes whlch recelver should recelve Lhe message) ls Lrlvlally slmple A
famlllar example of a messaglng sysLem ls Lhe posL offlce A sender glves a message (a leLLer or
a parcel) Lo Lhe posLofflce (Lhe messaglng sysLem) 1he posL offlce reads Lhe recelvers address
on Lhe message and LransporLs Lhe message Lo Lhe recelver







keferences
LvenLurlven rogrammlng by SLephen lerg verslon 02 20060208








sender
sender
sender
Messaglng SysLem
dlspaLcher
recelver
recelver
recelver



MASlnuL MuLl8C unlvL8Sl1? Cl SClLnCL Anu 1LCPnCLCC?

laculLy of sclence

ueparLmenL of compuLer sclence

8eg no Sl1/0331/09

nAML 8LnLulC1 M

AsslgnmenL1 ulscuss Lhe handlers deslgn paLLern and lLs varlanLs

LecLure Mr Mu1uA

You might also like