MCLC
BNGCHVITTT........................................................................................................................................... 5
DANHMCCÁCHÌNHVVÀðTH.......................................................................................................... 6
MðU................................................................................................................................................................ 9
1.Cơskhoahcvàthctincañtài:............................................................................................................ 9
2.Mctiêuvàphmvinghiêncucalunvăn......................................................................................... 11
3.Nidungnghiêncuvàthchincalunvăn......................................................................................... 11
4.Tómttcutrúccalunvăn................................................................................................................... 12
CHƯƠNG1................................................................................................................................................ 13
TNGQUANVMÔHÌNHSDNGLI..................................................................................................... 13
1.1.Giithiuchung............................................................................................................................... 13
1.2.Tngquanvcácmuthitk............................................................................................................... 13
1.2.1.Muthitklàgì? 13
1.2.1.1.Cácñnhnghĩavmuthitk[4,9]13
1.2.1.2.Cácthànhphncamuthitk[8,9]
14
1.2.2.Danhmccácmuthitkvàphânloi[9] .. 15
1.2.3.Sơñmiquanhgiacácmuthitk[9] .
1.3.Mtsmuthitkñinhìnhtrongcácngd
17
ngqunlý.................................... 17
1.3.1.MuQuansát
18
1.3.2.MuThchinlnh 20
1.3.3.MuTrngthái
22
1.3.4.MuPhươngthctiêubn 23
1.3.5.MuChuicáctráchnhim 24
1.3.6.MuChinlưc
26
1.3.7.MuKchbnthaotác
28
1.3.8.MuMôhìnhlĩnhvc
29
1.3.9.MuCngdliucabng
31
1.3.10.Muðitưngchuynñidliu
33
CHƯƠNG2................................................................................................................................................ 36
2
TNGQUANVHTHNGHOCHðNHNGUNLCDOANHNG
ERP................................................................................................................................
2.1.Lchshìnhthành ............................
2.2.ERMStíchhpERPvàNghipvsnxutkin
2.3.LiíchcadanhnghipkhisdngERP .......
2.3.1Tipcnthôngtinquntrñángtincy .....
2.3.2Côngtácktoánchínhxáchơn...............
2.3.3Citinqunlýhàngtnkho ................
2.3.4Tănghiuqusnxut .......................
2.3.5Qunlýnhânshiuquhơn .................
2.3.6Cácquitrìnhkinhdoanhñưcxácñnhrõràn
CHƯƠNG3........................................... ........................................................................
NGDNGCÁCMUTHITKðXÂYDNGCÁCPHÂNHT
THNGQUNLÝDOANHNGHIP.........................
3.1.Phânhchính:Cáclpcơs,qunlýbomt,
3.1.1.Bàitoánñtra .............................
3.1.2.Phmvibàitoán ............................
3.1.3.Phântíchyêucubàitoánvàxácñnhgii
3.1.4.ThitkPhânhchính ......................
3.1.4.1.Thitkcáclpxlý,truycpCSDL
3.1.4.2.ChcnăngQunlýbomtngdng ........
3.1.4.3.ChcnăngQunlýcutrúccácbngdli
3.2.PhânhQunlýmuabánvttư–nguyênliu..
3.2.1.Bàitoánñtra.............................
3.2.2.Phmvibàitoán ............................
3.2.3.Môtnghipvqunlý .....................
3.2.3.1. Xác ñnh các thông tin chung v qun lý mu
nguyênliu ........................................
3.2.3.2.Côngtácqunlýhotñngmuabánvttư
3
3
liu
3
......
3
3.2.4.ðcththng .............................
3.
3
3
3
3.2.5.Phântíchhthng ..........................
3
3.
3.2.6.Thitkhthng ...........................
3
3
3
CHƯƠNG4........................................... ......................................................................
CÀIðTVÀTRINKHAIHTHNG.....................
4.1.Cácyêucucàiñttrinkhaihthng.......
4.2.Giithiuchươngtrình .......................
4.2.1.Cácmctiêumàhthngñtñưc ...........
4.2.2.Cutrúcchươngtrình .......................
4.2.3.Cácñitưngsdngchươngtrình
4.2.4.Giaodinmtschcnăngchính ............
4.3.Khnăngtrinkhaiápdng...................
KTLUN ...........................................
1.Cácktquñtñưc ............................
2.Nhngvnñtntivàhưngpháttrin ........
......
TÀILIUTHAMKHO
TàiliutingVit ................................
TàiliutingAnh .................................
CáctrangWeb ......................................
Bcôngc .........................................
Chvittt
APICS
BOM
CSDL
ERP
ERM
GOF
GUI
MRP
MRPII
NCC
SQL
VTNL
DANHMCCÁCHÌNHVVÀðTH
Hình1.1:Sơñmiquanhgiacácmuthitk................................................................................................ 17
Hình1.2:CutrúcmuObserver................................................................................................................ 18
Hình1.3:BiuñcngtáccamuObserver................................................................................................... 19
Hình1.4:CutrúcmuCommand.............................................................................................................. 20
Hình1.5:BiuñcngtáccamuCommand................................................................................................ 21
Hình1.6:CutrúcmuState......................................................................................................................... 22
Hình1.7:CutrúcmuTemplateMethod................................................................................................. 23
Hình1.8.1:CutrúcmuChainofResponsibility.................................................................................. 25
Hình1.8.2:CutrúcmuChainofResponsibility.................................................................................. 25
Hình1.9:CutrúcmuStrategy.................................................................................................................. 26
Hình1.10:CutrúcmuTransactionScript............................................................................................. 28
Hình1.11:CutrúcmuTransactionScriptkthp
Hình1.12:CutrúcmuDomainModelsdngmuSt
vimuCommand......................... 29
rategy.......................................... 30
Hình1.13:CutrúcmuTableDataGateway.......................................................................................... 32
Hình1.14:CutrúcmuDataTransferObject......................................................................................... 34
Hình2.1LchspháttrincaERP................................................................................................................. 37
Hình2.2ERM–StíchhpERPvànghipv................................................................................................ 41
Hình2.3ðnhnghĩamôhìnhERM........................................................................................................... 42
Hình3.1.KintrúchthngdatrênmuMVC.............................................................................................. 47
Hình3.2.KintrúccáclpgiaotipCSDLsdng
muthitk....................................... 48
Hình3.3.SdngTableDefinitionñgimthiuth
ayñi.................................................... 50
Hình3.4.Cutrúccácphânlpqunlýcácgóica
miPhânhtronghthng.......51
Hình3.5.LưcñlpxlýdliucañitưngN
hânviên.............................................. 53
Hình3.6.Quátrìnhñăngnhphthng........................................................................................................ 54
Hình3.7.Môhìnhtngthcáccasdngliênquan
ñnbomt...................................... 54
Hình3.8.Cáclpthcthicasdngðăngnhp................................................................................................. 59
Hình3.9.Biuñcngtáccasdngðăngnhp................................................................................................. 60
Hình3.10.Cáclpthcthicasdngðimtkhu
............................................................... 60
Hình3.11.Biuñcngtáccasdngðimtkhu............................................................................................... 61
Hình3.12.CáclptrongcasdngCpnhtnhómq
uyn................................................... 61
Hình3.13.BiuñcngtáccasdngCpnhtnhó
mquyn............................................ 62
7
Hình3.14.CáclptrongcasdngPhânquyn. ....
Hình3.15.BiuñcngtáccasdngPhânquyn. .
Hình3.16.Lpthitkcasdngðăngnhpchưaá
Hình3.17.Cáclpthitktrongcasdngðăngn
Hình3.18.Cáclpthitkcasdngðimtkhu
Hình3.19.Cáclpthitktrongcasdngðim
.......................................................................................................................................
Hình3.20.Kintrúccáclpbomtngdng......
Hình3.21.MôhìnhcasdngphnQunlýcutrúc
Hình3.22.CáclpcacasdngCpNhtNhómBn
Hình3.23.BiuñcngtáccasdngCpNhtNhó
Hình3.24.CáclpcacasdngCpNhtBng ....
Hình3.25.BiuñcngtáccasdngCpNhtBn
Hình3.26.CáclpthitktrongcasdngCpnh
Hình3.27.Cáclpthitktrongcasdngcpnh
Hình3.28.CáclpthitktrongcasdngCpnh
Hình3.29.CáclpthitktrongcasdngCpnh
Hình3.30.KintrúclpcaphnQunlýcutrúc
Hình3.31.Môhìnhphâncpqunlýtrongdoanhngh
Hình3.32:SơñtintrìnhqunlýmuabánVTNL ..
Hình3.33:MôhìnhkháinimcachcnăngQunlý
Hình3.34:MôhìnhcasdngtngthcaPhânh
Hình3.35:CáclpthcthicasdngLpphiuyê
Hình3.36:BiuñcngtáccáclpcasdngLp
Hình3.37:CáclpthcthicasdngLpyêucu
Hình3.38:BiuñcngtáccáclpcasdngLp
Hình3.39:CáclpthcthicasdngLpyêucu
Hình3.40:BiuñcngtáccáclpcasdngLp
Hình3.41:CáclpphântíchthcthicasdngL
Hình3.42:BiuñcngtáccáclpcasdngLp
Hình3.43:CáclpphântíchthcthicasdngL
Hình3.44:BiuñcngtáccáclpcasdngLp
8
Hình3.45:Kintrúcvtlýcangdng. ..........
Hình3.46:CáclpthitkcasdngLpyêucu
Hình3.47:CáclpthitkcasdngLpyêucu
Hình3.48:CáclpthitkcasdngLpyêucu
Hình3.49:CáclpthitkcasdngLpyêucu
Hình3.50:Lpthitkyêucumuahàngápdngm
Hình4.1:Giaodinchínhcachươngtrình. ........
Hình4.2:Giaodinqunlýthcñơn. ..............
Hình4.3:GiaodinqunlýBáocáo. ...............
Hình4.4:GiaodinqunlýKháchhàng. ............
MðU
1.Cơskhoahcvàthctincañtài:
a. Cơskhoahcvàýnghĩathctincavicnghiên
hìnhsdnglivàoquátrìnhthitkphnmm
cuvàngdngcácmô
:
Mttrongnhnggiiphápñnângcaonăngsutca
mmlàxâydngnhnggiiphápñcóthsdngl
trongcácdánphnmmkhác.Srañicanhng
chyulàphântíchthitkvàlptrìnhhưngñ
ñángk.Trongñó,thitkhưngñitưngñóngva
ñnvicsdnglinhngtàinguyêntrongquátrì
quátrìnhpháttrinphn
itrongcácbưctiptheohoc
giipháphưngñitưngmà
itưngñãñemlinhngbưctin
itròñnhhưngvàquytñnh
nhpháttrinphnmm.
Thitkhưngñitưngchophépchúngtatheodõi
thucgiacácmôñuntrongkintrúccahthng.
hưngñitưngñãkhó,victhitkphnmmhưn
cóthsdnglithmchícònkhóhơnnhiu. Trư
tưngthtchínhxác,thhinchúngdưicáclpñ
phùhp.ðngthi,tacũngcnchrañưcsơñt
nhngñitưngnày.Nhngyêucutrêncnthitk
bàitoánhintisongcũngcncótínhtngquátv
mtphnhoctoànbcácbàitoáncóthgptrong
vàqunlýñưcsph
Tuynhiên,thitkmtphnmm
gñitưngvicácthànhphn
ctiên,cnphitìmracácñi
itưngvimcñtrutưng
hak,miliênhvàgiaotipca
ññápngñưcyêucuca
àlinhhotññcóthgiiquyt
tươnglai.
Mtkinhnghimthưngñưcápdngtrongquátrình
giiquytmivnñbngnhngthànhphncănbn
dngnhngmôhìnhñãthànhcôngtrongthctñi
tnggp.Mtkhimôhìnhgiiquytñãñhoànthi
nhiulntrongnhnglpbàitoánviyêucunht
gpmtbàitoànnàoñó,quaxemxétñxácñnhñư
ñưcmôhìnhthitkphùhpvàápdngngaynhng
mìnhmàkhôngcnphixemxétlitñu.
thitklàkhôngtìmcách
.Thayvàoñó,tacntìmcácháp
vimtsbàitoántươngtñã
n,nócóthñưcsdngli
ñnh.Khiñó,ngưithitkkhi
clpbàitoán,hcóthtìmra
môhìnhñóvàothitkca
Vicnghiêncuvàngdngcácmôhìnhsdngli
vàoquátrìnhthitkphn
àthitkphnmmhưngñi
trìnhthitklàmgimthiuthi
năngngdngvàmrngphát
mmlàmtbưctipcnmitrongkhâuphântíchv
tưng.Vicápdngcácmôhìnhsdnglivàoquá
gianvàchiphíñthitkphnmm,nângcaokh
khâuquantrngnhtcaquytrìnhxâydngphnm
lnñnsthànhcônghaythtbicaphnmm.Cá
m,giaiñonnàyquytñnhrt
cmôhìnhsdngliñãñưc
nghiên cu và áp dng thành công vào thc t, dó ñó
dnglivàoquátrìnhthitklàmgimthiutính
mmsaunày.
b. Cơskhoahcvàýnghĩathctincavicnghiên
HthngQunlýtngthdoanhnghip
Ngày nay, vi s phát trin nhanh chóng ca khoa h
côngnghthôngtinnóiriêngñãmanglinhiuthà
khoahcñưcápdngtrongttccáchotñngc
thànhcônghtsclnlao.VitNamhinnay,cá
nghipvavànhhuhtñãtrangbcơshtng
tocơschovicápdngnhngcôngnghmica
lĩnhvctìmkim,tchcvàxlýthôngtinphc
snxut.Vicơshtngcôngnghthôngtinngà
chc, doanh nghip ngày càng có nhu cu tin hc hoá
xut,qunlý,…vàmongmunmithôngtinqunlý
tr trên máy tính mt cách tp trung ñ có th tra
chóngmikhicónhucu.
HinnayhuhtcácdoanhnghipñãngdngCNTT
hànhdoanhnghipcamình.Tuynhiên,quakhosát
thngphn mmca cácdoanh nghip ñanghotñng
liênktñưcvinhauhocnucóthìliênkvi
vicliênktcáchthngphnmmkhácnhautrong
thng tp trung, qun lý tng th và chia s thông
ñngnht,trongsutlàmtnhucuhtsccpth
Tnhucuthctinxãhivàñcbitlàcañơn
skhoahccavicnghiêncungdngcácmôhìn
tíchthitkphnmm,lunvănñãchnñtàivi
kvàngdngñxâydngHthngQunlýthông
Mctiêucabàitoán“
nghip ”làxâydngmththngqunlýthôngtinbaog
Phân h gii quyt ñưc chn vn mt haymt s yêu
qunlýthôngtincadoanhnghip.
H thng ñưc xây dng s dng các công ngh k thu
hưngtipcnápdngcácmuthitk,sdngcô
tíchvàthitkbàitoántheomôhìnhhưngñitư
11
chkhách(COM+)ñcpnhtvàxlýthôngtin.ð
kñcóthchyñưcctrênnnWeblndesktop
Vihưngtipcnphântíchvàthitkhthngá
tưng s dng các mu thit k, và s dng công
ngh dngvàpháttrinhthng,chophéphthngdb
tươnglaiñápngñưccácyêucuthayñivàphát
Hthngñưcxâydnghoàntoànkhthikhiñưcá
nghipcóktnimngmáytính.
ngthihthngcũngñưcthit
application.
pdngcôngnghhưngñi
.NET ca Microsoft ñ xây
otrìvàpháttrinmrngtrong
trinngàycàngcaocaxãhi.
pdngvàocáctchcvàdoanh
2.Mctiêuvàphmvinghiêncucalunvăn
–
Nghiêncucácmôhìnhsdnglivànmbtñưc
cáchthc,tìnhhungápdngcácmôhìnhsdngl
ñcth.Quañó,tnghplimtsmuñinhìn
vàmtsmutiêubiungdngtrongcáchthng
–
Nmbtñưcphươngphápphântíchthitkhưngñ
Sdngphươngphápphântíchthitkhưngñitư
thit k ñ phân tích, thit k h thng qun lý th
doanhnghip.
–
mctiêu,ýnghĩavà
ivàogiiquytcácvn
hvhànhvivàtrìnhdin,
qunlýdoanhnghip.
itưngmththng.
ng,ápdngcácmu
ông tin tng th cho các
h thng da trên các
T kt qu phân tích và thit k tin hành xâydng
côngcvàmôitrưngñãlachn.
–
Thchintrinkhaivàápdnghthngtimtñơ
nv.
3.Nidungnghiêncuvàthchincalunvăn
–
Tngquanvpháttrinphnmmvàsdngli
– Nghiêncumtsmuñinhìnhvhànhvivàtrìnhdincũngnhưcácmu
ñinhìnhcacácngdngdoanhnghip.
–
Tngquanvhthnghochñnhngunlcdoanhng
–
VndngmuthitkcũngnhưlýthuytvERPñ
thitkHthngqunlýthôngtintngthchodo
–
Xâydngchươngtrìnhvàtinhànhcàiñtthnghi
12
4.Tómttcutrúccalunvăn
Lunvănbaogmcácphnsau:
Giithiulýdochnñtàilunvăn,nhucuth
MðU:
ngdngcalunvăn.
CHƯƠNG1:
ctinvàkhnăng
Tngquanvmôhìnhsdngli.
Chươngnàygiithiutngquanvphnmmsdng
v các mu thit k, gii thiu chi tit mt s mu
trìnhdinhayñưcdùngtrongcácngdngdoanhn
li,giithiutngquan
thit k ñin hình v hành vi
và ghip.
CHƯƠNG2 :TngquanvHthngHochñnhngunlcdoanh
ChươngnàygiithiutngquanvhthngERP,l
xuhưngpháttrin,tinhóacaERP.Quañóñưar
cáinhìntngthvhthngqunlýthôngtintn
vicphântích,thitkhthngqunlýthôngtin
chshìnhthànhcũngnhư
añưcnhngkháinimcũngnhư
gthcadoanhnghip,phcvcho
tngthchương3.
CHƯƠNG3: ngdngcácmuthitkñxâydngcácPhânh
Qunlýthôngtintngthdoanhnghip.
Chươngnàymôtviccndngcácmuthitkñ
dngmtsPhânhtronghthngQunlýthôngti
nghipERP.
cahthng
phântích,thitkvàxây
ntngthchodoanhnghip.
CHƯƠNG4 :Càiñt
rin khai h thng. Gii
Chương này nêu các yêu cu và môi trưng cài
ình nhp liu, báo cáo ca
ñt, t thiu mt s chc năng chính và ñưa ra mt s màn h
ìnhtrongthctin.
chươngtrình.Khnăngtrinkhaiápdngchươngtr
KTLUN:
Phn nàynêu kt qu ñt ñưc ca lun văn và ñ x
hưngnângcpvàmrngngdngñtàivàothc
tintrongtươnglai.
ut phương
CHƯƠNG1
TNGQUANVMÔHÌNHSDNGLI
1.1.Giithiuchung
Thit k phn mm là mt công ñon quan trng
trong phát trin phn mm. Cũng như vic thit k phn
m phnmmhưngñitưngcnphiñápngñưcyêu
cncótínhtngquátvàlinhhotññcóthgi
bàitoáncóthgptrongtươnglai.
quy trình xây dng và
m truyn thng, vic thit k
cucabàitoán,songcũng
iquytmtphnhoctoànbcác
c thayñi do yêu cu t
Trong quá trình xâydng và phát trin phn mm,
hitkmtcáchcngnhctrong
cá phíakháchhàng,cácñiukinphátsinhhayvict
quátrìnhthitkthưnglàmchohthngtrnên
rirm,cácmôñuncàngngàycàng
bphthucvàonhau.Sphthucnàylàmchoph
nmmngàycàngtrnênphình
tovàkhóbotrì,thmchídnñnthtbi.
Phươngpháplptrìnhhưngñitưngrañigópph
phnmmtrnênddàngvàlinhñnghơn.Thitk
dõivàqunlýñưcsphthucgiacácmôñuntr
Victìmcáchápdngnhngmôhìnhñãthànhcôngt
bàitoántươngtñãtnggpvàápdngnhngmôh
khôngcnphixemxétlitñu,ñmbotitki
pháttrinphnmm,nângcaoñtinhcyvàchtl
ngiúpcho victhitk
hưngñitưngchophéptheo
ongkintrúccahthng.
rongthctñivimts
ìnhñóvàothitkcamìnhmà
mchíphí,thigianxâydngvà
ưngphnmm.
Năm 1995, Erich Gamma, Richard Helm, Join Vlissides , và Ralph Johnson
(GangofFour
GOF)ñãcôngbcunsáchcah“E
lementsofreusableObject
OrientedSoftware”ñánhdusrañica“
Muthitk
”.ðâylàmtbưctinvô
cùngquantrngñivivicthitkphnmmhưn gñitưng.
1.2.Tngquanvcácmuthitk
1.2.1.Muthitklàgì?
1.2.1.1.Cácñnhnghĩavmuthitk[4,9]
Muthitk(
p
Design Pattern)làmtcpgiipháp/vnññưcñttêncóthá
dng trong nhng ng cnh mi và nhng hưng dn ñ
áp dng nó trong
nhngtìnhhungminhưthnào.[3]
Muthitkkhôngñơnthunlàmtbưcnàoñótro
phnmmmànóñóngvaitròlàsángkinñgiiqu
ngcácgiaiñonpháttrin
yt mtbàitoánthông
14
dngnàoñó.Cácgiaiñonphnmmvnhoànchnh
màkhôngcómuthit
k,nhưngsgópmtca muthitksgiúpcho
giiquytnhanhgnhơn,tñóñưaracáchgiiqu
Muthitkkhôngchñưcsdngñxácñnhbài
cònñưcsdngnhmcôlpcácthayñitrongmã
thngcókhnăngtáisdngcaodomuthitkt
nguyênlýthitkhưngñitưng.[9]
Vicxácñnhthnàolàmtmuthitkphthuc
camingưi.TheoGOF,cáchnhìnnhnphbinnh
chúnggingnhưcácmôtvcácñitưngphcv
quátrìnhthitkñãñưchiuchnhñgiiquyt
trưnghpnhtñnh.
1.2.1.2.Cácthànhphncamuthitk[8,9]
Mimuthitktrưctiênmôtmtbàitoánmàt
nhngyutcănbnnhtñgiiquytbàitoánth
nhiuln.Datrênmôtnhưtrênvcácmuthit
thànhphncơbnsau:
agpnhiulnrimôt
eocáchmàtacóthápdngli
k,tathychúngbaogmnhng
Tên:Làtêngiquañótacóthmôtbàitoáncngi
hinhayktqu.Vicñttênmuthitkchophé
iquyt,giiphápthc
pmôtcácbàitoánvàgii
phápmtcáchngngn.Tothànhmtngônngtron
gcngñngnhngngưi
Façade”,tahìnhdungngayñnmô
thitk.Víd,khinóiñnmuthitk“
hìnhthitkmtñitưngvivaitrògiaodchc
amttpcácthànhphnnh
hơn.
Bàitoán : Cho phép xác ñnh trong trưng hp nào thì áp dn
thôngquamôtbàitoánvàngcnhcabàitoánñ
Giiphápgiiquytbàitoán:
g mu thit k
ó.
Môtnhngthànhphntonênmuthitk
(cáclp,cácñitưng)cùngmiquanh,vaitrò
chúng(cutrúc,thak).Giiphápkhôngñcpñ
thchincthnàovìnóñưcápdngtrongrtn
Thayvàoñó,giiphápcamuthitkñưcmôt
cáchthctchcchungnhtcacácthànhphntro
vàcáchthcphihpgia
ncáchthcthitkhay
hiutìnhhungkhácnhau.
vitínhkháiquátcaovi
ngvicgiiquytbàitoán.
15
mu GRASP),muthitk
Vídnhưmuthitkñưcginhưmtthànhng(
gmãngun.
cóthmôtbnglihocmôhìnhthitkhaybn
Hqu
ncânnhckhiáp
:Lànhnggìthunhnñưccùngvinhngyutc
dngmuthitkñgiiquytbàitoán.Hquth
ưngkhôngñưcñcpkhi
nóiñnmtmuthitknhưngñâylàyutquyt
ñnhkhicnchnlahoc
phântíchchiphívàliíchkhiápdngcácmuth
itk.
1.2.2.Danhmccácmuthitkvàphânloi[9]
ErichGammavàcácñngscaôngñxut23mut
tiêu chí ñ phân loi các mu thit k này. ðó là p
(purpose)vàphmviápdngcamu(scope).
hitk,vàñãñưarahai
hân loi theo mc ñích s dng
a. Theo mc ñích s dng: Các mu thit k ñưc phân thành 3 nhóm: mu
kinto,mucutrúc,muhànhvi.
Mukinto ( Creational Patterns): mu kin totrutưnghoá quátrìnhkhi
toñitưng.Cácmunàygiúphthngkhôngphi phthucvàocáchmt
ñitưngñưctora,xâydngvàthhin.
Mu thit k kin to bao gm các mu sau:
Abstract Factory, Builder, Factory
Method, Prototype, Singleton.
Mucutrúc ( Structural Patterns):muthitkcutrúcñcpñncáchmàcác
ñitưngvàlpñitưngkthpñtonênmtcutrúclnhơnvàhudng
hơn.Victhitkcáclpñitưnglànhmñápn
gcácràngbuccthca
hthng.Mucutrúcmôtmiquanhgiacácl
pnàyvàspxpsaocho
nucóbtkìsthayñinàovihthngñukhôn glàmthayñinhngquan hñó.
Muthitkcutrúcbaogmcácmusau:
Facade, Flyweight, Proxy.
Adapter, Bridge, Composite, Decorator,
Muhànhvi (Behavioral Patterns):muhànhvimôtstươngtácgiacácñi
tưngvàcáchchúngphânphi,cngtác,ñgiiqu ytmthaymtnhómtrách nhimnàoñó.
Muhành vibaogmcác mu sau: Chain of Responsibility, Command, Interpreter, Iterator,
Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.
16
b.Theophmvisdng:
cácmuthitkñưcphânthành2nhóm:
Phmviñưcnóiñnkhitaquytñnhnênápdng muthitkvàocáclphay cácñitưng.
MuthitkápdngchoLp
(Class):cácmunàymôtvàgiiquytmi
quanhgiacáclpñitưngvàlpconcachúng
.Cácmiquanhnàyñưc
thit lp qua cơ ch k tha và ch xyra thi ñ
imbiên dch chương trình
(compilertime).
Các mu thuc loi này bao gm:
Template Method.
Factory Method, Adapter (c lass), Interpreter,
Muthitkápdngchoðitưng( Object):cácmunàymôtvàgiiquyt
miquanhgiacácñitưng.Cácmiquanhnày cóththayñitithi
ñimchychươngtrình(runtime).
Các mu thuc loi này bao gm: Abstract Factory, Builder, Prototype, Singleton, Adapter
(object), Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Chain of
Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Visitor.
17
1.2.3.Sơñmiquanhgiacácmuthitk[9]
Hình1.1:Sơñmiquanhgiacácmuthitk
1.3.Mtsmuthitkñinhìnhtrongcácngd
Viphmvithchincalunvăn,phnnàycht
mu thitkñinhìnhvhànhvivàtrình dinha
qun lý doanh nghip như là các mu thit k dành c
logic)hoccácmuvhànhviquanhcacácñi
cácñitưng.
18
1.3.1.MuQuansát
1.3.1.1.Ýnghĩa
Muquansát( Observer)ñnhnghĩamiquanhphthucmtnhiugia
ñitưngsaochokhimtñitưngthayñitrng tháithìttccácñitưngliên
quancũngsñưcthôngbáovàtñngcpnhtthe o.
các
1.3.1.2.Môt
Vicphânchiahthngthànhnhiulpconcóquan
yuñcóthduytrìsbnvngcahthng.Chú
hthngmàttccáclpdínhchtlivinhau,
sdnglicachúng.
Víd,nhiucôngcgiaodinñhophântáchgia
(Data)bêndưi.Cáclpñnhnghĩachogiaodinv
nhauñlàmviccũngnhưcóthñưcsdng1các
hvinhaulànhucutt
ngtakhôngbaogimuncàiñt
bivìñiunàyslàmgimtínhtái
odin(GUI)rakhidliu
àdliutrêncóthkthpvi
hñclp.
Mu Observermôtcáchthitlpmiquanhnày.Cóhaiñit ưngthencht trongmunày,ñólà
Subjectvà Observer.Mtñi tưng Subjectcóthcómthoc nhiu ñi tưng Observer ph thuc vào
nó. Tt c các ñi tưng Observer s ñưc cnhbáo(notify)khi ñitưng
Subjectcósthayñivtrngthái.Khiñó,cácñi tưng Observerslythôngtinvtrngtháicañitưng
Subjectñtcpnhtli trngtháicachínhnó.
1.3.1.3.CutrúcmuObserver
Hình1.2:CutrúcmuObserver
cu trúc trên, khi khi to mt ñi tưng thuc l
p ConcreteObserver thì s
khitonàyphidatrênñitưngthuclp
ConcreteSubjectñlythôngtintrng
tháihinticañitưng
Subject.ðcñimca munàylàsánhxqualigia
19
Observer. ði tưng
Subject và các ñi tưng thuc lp
ñi tưng thuc lp
ConcreteObserversgicontrcañitưng
ConcreteSubject.Ngưcli,lpchaca
Observer(lpcha
lp ConcreteSubject(lp Subject)sgimtmngcáccontrñnlp
calp ConcreteObserver).
1.3.1.4.Biuñcngtác
ðitưng
ConcreteSubjectsgithôngbáoticácñitưng
ckhinàocósthayñitrngtháicacácñit
ưng Observer.
Sau khi xác nhn s thay ñi trong ñi tưng
ConcreteObserver có th truy vn thông tin ca các ñi tưng
Observercanóbt
ConcreteSubject, ñi tưng
Observer. ði tưng
ConcreteObserversdngthôngtinnàyññngbtrngtháicanó
Observerñó.
vicácñitưng
Hình1.3:BiuñcngtáccamuObserver
1.3.1.5.Cáctìnhhungápdng
Mu Observerthưngñưcápdngkhi:ngdngcómiquanhp
hthuc,
ñitưngnàyphthucvàoñitưngkia.Hockhi
mtsthayñiñitưngnày
dnñnsthayñiñitưngkhácvàchúngtakh
ôngbitchínhxáccóbaonhiêu
ñitưngphithayñitheo
1.3.1.6.Thunlivàhnch
Mu Observergiúpchúngtasdngcácñitưngchth(
tưngphthucvàotrngtháicanó(
Observer)mtcáchñclp.
Chúngtacóthsdnglinhngñitưngchth
dnglicácñitưngphthuctrngthái
Subject)vàcácñi
Subjectmàkhôngphis
Observercanóvàngưcli.
20
Chúng ta có th thêm vào mt hoc nhiu ñi tưng p
(Observer) mà không phi sa ñi li ñi tưng ch th
Observerphthuctrngtháikhác.
h thuc trng thái
Subject hoc các ñi tưng
1.3.2.MuThchinlnh
1.3.2.1.Ýnghĩa
MuThchinlnh( Command)dùngññónggóicácyêucukhácnhauthành tng ñi
tưng thc hin lnh riêng bit, do ñó cho phép thams hoá các tác v t
clientviñitưngthchinlnhkhácnhau,ñưa
vàohàngñihoctptinsghi
(logfile)cácyêucu,htrvicphchicáctá cvñãthchin.
1.3.2.2.Môt
Munàytoracáclplnh
Commandgiúpchovicgithchinsaunàyñưc
Commandñưcñnhnghĩatươngngvimthànhñng(
action)ca
ddàng.Milp
mtñitưngnhn(
receiver)nàoñó(còngilàmtcp
action receiver).Saunày,khi
ươngngvi
munthchinlnhnào,tachcngithchint
Commandtươngng.
1.3.2.3.CutrúcmuCommand
Hình1.4:CutrúcmuCommand
Cácthànhphnthamgiavàocutrúc
Command:
Command:ðnhnghĩagiaotipchovicxlýmttácv.
ConcreteCommand:ðnhnghĩaktnigiamtñitưngnhnvàmt
tácvthchin.
Client:Tomtñitưng ConcreteCommandvàñtcácñitưngnhncho nó.
Invoker:Duytcác
Commandññưaracácyêucukhicn.
21
Receiver:nhnbitkhinàocnthchintácvtươngng vicácyêucu ñưcgiti.
1.3.2.4.Biuñcngtáccacácñitưngthamgi
avàomu
Hình1.5:BiuñcngtáccamuCommand
Clienttocácñitưng
ConcreteCommandvàxácñnhcácñitưngnhntương
ng.ðitưng Invokerlưugicácñitưng ConcreteCommandñcóthduytvàñưa
racácyêucukhicn.
1.3.2.5.Cáctìnhhungápdng
Cóthngdngmu
Commandñxâydngmtthcñơnbngcáchtomttp
hpcácCommandtươngngvicácyêucuthchin
cácmcchntrênthcñơn…
Sdngmunày,tacóthxâydngcácchcnăngP hchi(undo),Thchin li(Redo),…
bngcáchlưulicáclnhñãñưcth chinvàomtdanhsách(queue, historylist,log,…).
Sauñó,chcndatheo danh sáchnàyñ PhchihocThc
hinlilnhtươngng.ðlàmñưcñiunày,tron glp ConcreteCommand(kthat lp
Command)phixâydngsnchcnăngPhchicachínhnó .Khiñó,mttp
hpcáclnhñãñưcthchinsñưcPhchibn gchcnăngThchinlica tnglnhchatrongnó.
1.3.2.6.Thunlivàhnch
CóthddàngthêmmimtLnhbivìchúngtakh
cũ.CóthtphpcácLnhkhácnhaulithànhmt
CácñitưngCommandcóthñưcxlývàktha
khác
ôngphisalinhnglp
Lnhtnghp.
gingnhưcácñitưng
22
1.3.3.MuTrngthái
1.3.3.2.Ýnghĩa
hitrng
MuTrngthái(
State)chophépñitưngcóthtñiuchnhhànhvik
tháicanóthayñi(hànhvicañitưngphthu
cvàotrngtháicanó).
1.3.3.2.Môt
tñưaracácngxkhác
Munàydùngñmôtlàmthnàoñitưngcóth
nhautươngngvimitrngtháivàothiñimch
y.
Munàyñưaramtlptrutưng(
Abstract)ñidinchocáctrngtháicañi
tưngtrongngcnh hinti(
Context), ñâyta gilàlp
State.Lpnàycungcp
giao din chung cho tt c các lp ñi din các tr
ng thái khác nhau ca ng cnh
Context.Cáclpcon,kthatlp
Statenày( ConcreteStateA, ConcreteStateB,…),s
cungcpchititcácngxtươngngvitrngth
áicanó.ðitưng
Statecóth
truyxutñitưng
Contextkhicnthitñnmgicácyêucucañitưng
Context.
Lp Contextsgimtbinñitưngtrng thái(mtlpcon
lưugitrngtháihinhành).Lp Contextsunhimttccácligitrngtháiñn
chobinñitưngnày.
calpStates
1.3.3.3.CutrúcmuState
Hình1.6:CutrúcmuState
Cácthànhphnthamgiavàocutrúc
State:
Context:Chacácyêucu,cácphươngthctphíaClient.Lưugimtth
ConcreteState).
hin(instance)catrngtháihinhành(thuclp
State: Cha các ng x có liên quan ñn các trng thái
c Context.
ConcreteState:cáclpconcàiñtcácngxtươngngvicác
cañitưng
Contexttrên.
a ñi tưng
trngthái
23
1.3.3.4.Cáctìnhhungápdng
ngxcamtñitưngphthucvàotrngtháic
nócóththayñivàothiñimchyvàphthuc
añitưngñó,ngxca
vàotrngtháilúcñó.
S ñiu khin có th quá ln và các nhánh trong cùn g mt cu trúc ñiu kin
Ifelse ph thuc vào các trng thái khác nhau ca
ñi tưng. Mu nàys tách mi
nhánhcacutrúcñiukintrênthànhmtlpriê
ngbit,doñócóthxlýcáctrng
tháicañitưngmtcáchñclp,khôngphthu
cnhiuvàocácñitưngkhác.
1.3.3.5.Thunlivàhnch
Nhngñitưng
Statecóthñưcchias.Hthngsdngcácñitưn
chiasnhmlàmtăngtínhlinhhotvàdnângcp
,thayñisaunày.
Sdngmunàylàmchocácschuynñitrngthá
itronghthngñưcrõ
ràng.
1.3.4.MuPhươngthctiêubn
1.3.4.1.Ýnghĩa
Mithuttoánbaogmmttpcáchànhñngtheom
tthtxácñnhvàmi
hành ñng s ñưc cài ñt khác nhau tuỳthuc vào c
ác th hin khác nhau ca ñi
tưng.MuPhươngthctiêubn(
Template Method)giúpchúngtañnhnghĩatht
cáchànhñngnàyvàchophépcáclpconcanóñ
nhnghĩalicáchànhñngtuỳ
thucvàongcnhcth.
1.3.4.2.Cutrúcmu
Hình1.7:CutrúcmuTemplateMethod
gstate