Professional Documents
Culture Documents
Ni dung
Thit k module Cht lng thit k o thit k tt Khi nim v mu thit k
Nguyn Vit H
Nguyn l thit k
Nguyn Vit H
Nguyn l thit k
Thit k module
Da trn quan im "chia tr"
C: phc tp E: n lc thc hin C(p1 + p2) > C(p1) + C(p2) E(p1 + p2) > E(p1) + E(p2)
Nguyn Vit H
Nguyn l thit k
S lng module
Cn xc nh s mun ti u
chi ph pht trin module gi phn mm
chi ph tch hp
s module ti u
Nguyn Vit H Nguyn l thit k
s module
5
Nguyn Vit H
Nguyn l thit k
Coupling
normal coupling loose and best still very good ok ok
Nguyn Vit H
Nguyn l thit k
Nguyn Vit H
Nguyn l thit k
11
B A D liu
12
m un gp li
Nguyn Vit H
Nguyn l thit k
(name, sex)
printName
Nguyn Vit H
Nguyn l thit k
13
(age)
(personel record)
calcAge
Nguyn Vit H Nguyn l thit k 14
(day of week)
(date)
calcDayOfWeek
Nguyn Vit H
Nguyn l thit k
15
Cohesion
mi module ch nn thc hin mt chc nng mi thnh phn nn tham gia thc hin chc nng
Nguyn Vit H
high and best ok still ok not bad at all still not bad at all still not bad at all
coincidental
Nguyn l thit k
16
Nguyn Vit H
Nguyn l thit k
18
Understandability
Tnh hiu c Ghp ni lng lo Kt dnh cao c lp ti liu Thut ton, cu trc d hiu
Nguyn Vit H
Nguyn l thit k
20
Nguyn Vit H
Nguyn l thit k
21
Adaptability
Tnh thch nghi c Hiu c
sa i c, ti s dng c
T cha
khng s dng th vin ngoi mu thun vi xu hng ti s dng
Nguyn Vit H
Nguyn l thit k
22
Adaptability (2)
Cc chc nng cn c thit k sao cho d dng m rng m khng cn sa cc m c (Open closed principle) Tru tng ha l cha kha gii quyt vn ny
cc chc nng tru tng ha thng bt bin cc lp dn xut ci t cc gii php c th s dng a hnh
Nguyn Vit H
Nguyn l thit k
24
Abstract Factory
Mt chng trnh cn c kh nng chn mt trong mt vi h cc lp i tng V d, giao din ha nn chy c trn mt vi mi trng Mi mi trng (platform) cung cp mt tp cc lp ha ring:
WinButton, WinScrollBar, WinWindow MotifButton, MotifScrollBar, MotifWindow pmButton, pmScrollBar, pmWindow
Nguyn Vit H Nguyn l thit k 25
Yu cu
Thng nht thao tc vi mi i tng: button, window,...
D dng - nh ngha giao din (interfaces):
Thng nht cch thc to i tng D dng thay i cc h lp i tng D dng thm h mi
Nguyn Vit H Nguyn l thit k 26
Gii php
nh ngha Factory - lp to i tng:
class WidgetFactory { Button makeButton(args) = 0; Window makeWindow(args) = 0; // other widgets }
Nguyn Vit H
Nguyn l thit k
27
Thay i h i tng - ch mt ln trong m ci t! Thm h - thm mt factory, khng nh hng ti m ang tn ti!
Nguyn Vit H Nguyn l thit k 29
S lp
Nguyn Vit H
Nguyn l thit k
30
ng dng
Cc h iu hnh khc nhau Cc chun look-and-feel khc nhau Cc giao thc truyn thng khc nhau
Nguyn Vit H
Nguyn l thit k
31
Composite
Mt chng trnh cn thao tc vi cc i tng d l n gin hay phc tp mt cch thng nht V d, chng trnh v hnh cha ng thi cc i tng n gin (on thng, hnh trn, vn bn) v i tng hp thnh (bnh xe = hnh trn + 6 on thng).
Nguyn Vit H Nguyn l thit k 32
Yu cu
Thao tc vi cc i tng n gin/phc tp mt cch thng nht - move, erase, rotate, set color Mt vi i tng hp thnh c nh ngha tnh (bnh xe) trong khi mt vi i tng khc c nh ngha ng (do ngi dng la chn...) i tng hp thnh c th to ra bng cc i tng hp thnh khc Chng ta cn mt cu trc d liu thng minh
Nguyn Vit H
Nguyn l thit k
33
Gii php
Mi i tng n gin k tha t mt giao din chung, v d Graphic:
class Graphic { abstract void move(int x, int y); abstract void setColor(Color c); abstract void rotate(double angle); }
Cc lp nh Line, Circle... k tha Graphic v thm cc chi tit (bn knh, di,...)
34
Nguyn Vit H
Nguyn l thit k
Cc thao tc i vi mt i tng hp thnh s dng mt vng lp for all Thao tc thc hin ngay c vi trng hp thnh phn ca Composite li l mt Composite khc - cu trc d liu dng cy C kh nng gi th t ca cc thnh phn
Nguyn Vit H Nguyn l thit k 36
Nguyn Vit H
Nguyn l thit k
37
S lp
ng dng
c dng trong hu ht cc h thng HT Chng trnh son tho Giao din ha Cy phn tch cho bin dch (mt khi l mt tp cc lnh/li gi hm/cc khi khc)
Nguyn Vit H Nguyn l thit k 39
Proxy Pattern
Cc i tng c kch thc ln, ch nn np vo b nh khi thc s cn thit; hay cc i tng vng a ch khc (remote objects) V d: Xy dng mt trnh son tho vn bn c nhng cc i tng Graphic
Vn t ra: Vic np cc i tng Graphic phc tp thng rt tn km, trong khi vn bn cn c m nhanh Gii php: s dng ImageProxy
Nguyn Vit H
Nguyn l thit k
40
S lp
Nguyn Vit H
Nguyn l thit k
41
p dng
Proxy c s dng khi no cn thit phi c mt tham chiu thng minh n mt i tng hn l ch s dng mt con tr n gin
cung cp i din cho mt i tng mt khng gian a ch khc (remote proxy). tr hon vic to ra cc i tng phc tp (virtual proxy). qun l truy cp n i tng c nhiu quyn truy cp khc nhau (protection proxy). smart reference
Nguyn Vit H
Nguyn l thit k
42
Strategy
Chng trnh cn chuyn i ng gia cc thut ton V d, chng trnh son tho s dng vi thut ton hin th vi cc hiu ng/li ch khc nhau
Nguyn Vit H
Nguyn l thit k
43
Yu cu
Thut ton phc tp v s khng c li khi ci t chng trc tip trong lp s dng chng
v d: vic ci thut ton hin th vo lp Document l khng thch hp
Nguyn Vit H
Nguyn l thit k
44
Gii php
nh ngha lp tru tng biu din thut ton:
class Renderer { abstract void render(Document d); }
Nguyn Vit H
Nguyn l thit k
45
Nguyn Vit H
S lp
Nguyn Vit H
Nguyn l thit k
47
ng dng
Chng trnh v/son tho Ti u bin dch Chn la cc thut ton heuristic khc nhau (tr chi...) La chn cc phng thc qun l b nh khc nhau
Nguyn Vit H
Nguyn l thit k
48