You are on page 1of 9

DP4Dummies Chng 1 Tng quan cc mu DP

Posted on Thng Hai 20, 2013by haihth

Chng 1: Xin chc mng, rc ri ca bn c gii quyt trit . Trong chng ny, chng ta s ni n: Gii thiu v Mu thit k Design Patterns l g?

Hiu bit v tc dng ca Design Patterns M rng lp trnh hng i tng im s qua mt s mu Design Pattern

L mt lp trnh vin, bn bit rng tht kh khn nh chi tit nhng vic bn ang thc hin. V khi bn khng nm bt c tng qut cng vic, bn c th d dng b l nhng vic quan trng. Khi , m ngun bn ang vit c th vn cn lm vic tt p, nhng tr khi bn bao qut c bc tranh ln hn, lc m ngun bn vit mi thc s hon ho. Nhng vn nghim trng thc s thng xut hin sau khi bn chnh sa chng t nht mt ln. Nhng nh pht trin thng t mnh x l bng cch vit li m ngun v sa cc li. Tuy nhin trong mi trng cng vic, nhng nh lp trnh thng b phn ln thi gian bo tr, chnh sa nhng cng vic c hn l tp trung vo nhng sn phm mi.

Bn thy rng tht v l khi c phi lm, ri sa, lm li, sa tip Gii php hp l nht l bn a ra c mt quy trnh tng quan cho vic thit k v bo tr, c nh vy, bn mi trnh c cc rc ri pht sinh khi mi trng ng dng thay i, hoc t nht bn cng gip cho vic bo tr, chnh sa d dng hn khi c pht sinh. tng ng sau cun sch ny l: Bn s s dng mt tp hp cc mu thit k Design Patterns lm n gin ha qu trnh trn. K hoch ny s gip bn c mt ci nhn tng qut. Mt mu thit k Design Pattern l mt gii php c kim nghim thnh cng khi i din mt vn lp trnh pht sinh c th. Khi bn quen thuc ht cc mu thit k trong sch ny, bn nhn vo mt chng trnh. Bam! Mt gii php ng n s xut hin trong tm tr bn, thay v bn phi p u vo tng trong v vng, gi bn c th ung dung ni y, ti s s dng mu Factory, mu Observer, hay mu Adapter l cha ni, mt s sch v thit k khuyn bn nn dnh phn ln thi gian phn tch v ln k hoch cho mt n. V p tht s y l mt ngi no i mt vi vn bn ang gp phi, h c gii php ng n cho n. V gi khi bn nhun nhuyn mu thit k, bn c th p dng cc thit k mt cch d dng. Lm sao tr thnh chuyn gia thit k trong lnh vc phn mm, iu m ai cng thm mun? Tht d dng, hy c cun sch ny, nghin ngm nhng mu thit k m ti dnh nhiu tm huyt vit. Bn khng cn phi nh mi th, bn ch cn bit l c nhng mu thit k . V khi bn i din vi mt vn thc t, su thm trong bn t nhin tht ln , c v ch ny c th dng mu Iterator Sau bn ch cn tm kim mu thit k trong cun sch ny, duyt qua cc v d bit phi lm g. V v vy, chng ny s l mt tour du lch nho nh, gip bn i qua mt s mu thit k tin dng v hu ch. Ch cn tm ra mu thit k thch hp im k diu ca Design Patterns l n gip cho cng vic ca bn d dng ti s dng, d m rng v bo tr. Khi bn thit k khng tt, phn mm ca bn khng c kh nng ti s dng v bo tr, khi gp vn pht sinh, bn s phi dnh nhiu thi gian, c khi l nhiu hn c lc bn vit ban u, ch l sa cha chng. V d: Bn ang mun to mt i tng Java, nhim v l c v phn tch mt ti liu XML. Bn cn phi to mt lp Parser (chuyn dng phn tch XML) sau bn to

mt i tng ca lp ny. Bn thm ngh Ti gi mi vic vn n. Nhng thc t th c hng t lp Parser do ngi khc vit, v h lun mun s dng li nhng tnh nng c bit trong lp ca h. Nu bn c th s dng mu thit k Nh my Factory, gi y bn c th s dng bt c lp Parser no, k c ca nhng ngi khc, thay v c kh kh xi lp Parser do chnh bn vit ra. V v vy, chng trnh ca bn tr nn d m rng, ti s dng c v bo tr d dng. Ni cch khc, Mu thit k Design Patterns l nhng gii php gip cho ta c mt thit k tt khi i din nhng vn pht sinh trong vic lp trnh. Nhiu ngi gp vn ny, v gii quyt tt, vic ca bn l p dng chng. Bn khng cn phi ghi nh mi th, ch cn nhn ra u l mu thit k ph hp v t n vo ng ch. Tht tuyt ng khng cc bn. i nt v cun sch tn Gang of Four B t tc gi. Quyn sch l tp hp 23 mu thit k c pht hnh bi Erich Gamma, Richard Helm, Ralph Johnson v John Vlissides, trong mt nghin cu ca h nm 1995. Vi ta gc l Design Patterns: Elements of Reusable Object-Oriented Software. Tm dch Mu thit k: nhng thnh phn ti s dng trong lp trnh hng i tng. H c gii lp trnh gi l B t Gang of Four, hay GoF. (ND: B t y l n d vi Tn nhm nhc ni ting Gang Of Four ca Anh hay B t quyn lc Mafia trong tc phm B gi hay l b t quyn lc chnh tr ca Trung quc, VN cng c b t quyn lc ca Vietnam Next Top Model). c rt nhiu s thay i k t khi xut hin, mt s trong 23 mu c s dng nhiu, s khc t khi c s dng. Ti s ni n y 23 mu trong cun sch ny, nhng ti s nhn mnh nhng mu thng c s dng hn. V k c mu mi khng c trong sch ca GoF, trong chng 11. C mt s tht l, bn khng ch phi nh k tng mu thit k, bn phi hiu su sc v n, c th p dng ng n trong thc tin. Ti cng s lu nhiu v lp trnh hng i tng xuyn sut quyn sch ny. Lp trnh hng i tng OOP l mt bc tin tuyt vi trong lnh vc lp trnh. Nhng c qu nhiu lp trnh vin s dng chng mt cch ty tin, thiu chiu su, v iu gy ra nhiu rc ri tim n.

Phn ln vic tm hiu nhng mu thit k chnh l vic m rng khi nim lp trnh hng i tng. V d: ng gi nhng g thay i nhiu nht (encapsulating what changes most), cch chuyn i mt quan h k tha is-a sang quan h kt hp has-a ( xem chng 2 bit chi tit) v ti s ni chi tit v chng. Hy bt u bng mu Mediator Pattern (Ngi trung gian)

Hnh bn trn l mt v d v mu thit k, mu Mediator. Hnh cho chng ta thy chc nng ca mt mu Mediator. Theo hnh ta ang c mt website vi 4 trang. Website cho php khch hng duyt qua kho hng v t mua. Khch hng c th i t trang ny qua trang khc theo ng v trn hnh. y c mt vn pht sinh. Ti tng trang, bn phi vit m nhn bit khi no khch hng mun nhy qua trang khc v kch hot trang . Ti mt trang bn c qu nhiu ng i ti trang khc, v v vy s pht sinh nhiu on code trng lp trn nhiu trang khc nhau. Bn c th s dng mu Mediator ng gi tt c cc ng dn ti trang vo mt module duy nht, v t n vo trong mt i tng Mediator. T by gi, tng trang ch cn phi thng bo bt c s thay i no cho Mediator, v Mediator t bit dn trang cn thit cho khch hng, nh trong hnh bn di.

Bn c th to ra mt Mediator vi chc nng dn trang. Ti y bn c th chnh sa v thay i d dng. chnh l chc nng ca Mediator (Ngi trung gian) Chuyn i vi mu thit k Adaptor (Ngi chuyn i) y l mt mu khc, mu chuyn i Adaptor.

Hy nhn vo hnh 1-3. u vo l mt i tng c. H thng tip nhn i tng c. Vi hnh 1-4. Khi h thng thay i, h thng khng tip nhn i tng c na, ch tip nhn i tng mi. (ND: thc ra hnh nh 1-4 c cht cha chnh xc, phn I only take new objects, nn v nh li) Hnh 1- 5. y l ni xut hin mu Adaptor (Ngi chuyn i). Mc ch l chuyn i i tng c, thnh i tng mi, khi h thng s sn sng tip nhn i tng ny. ND: Cc bn hy tng tng. Cc bn c mt chic tivi vi u cm in 3 chn. cm in nh bn l loi 2 chn. Bn ra ngoi ca tim, mua 1 cc chuyn i, t 3 chn ra 2 chn. Lc bn c th s dng c in 2 chn ri. Cc chuyn i t 3 chn ra 2 chn, chnh l Adaptor Vn c gii quyt. Ai ni hc cc mu thit k l kh khn nh. ng trong mt i tng. Mu Proxy. (Ngi i din) y l mt mu khc. Mu Proxy. Mu ny ni rng, m bn vit ch tng tc vi i tng cc b nh hnh di

Thc t pht sinh, bn buc phi tng tc vi mt i tng xa, u trn th gii. Lm sao bn c th lm cho chng trnh ca bn tng tc vi mt i tng cc b trong khi thc t l n ang lm vic vi mt i tng xa. y mu Proxy (Ngi i din) xut hin. N l mt i tng nm bn trong chng trnh, lm trch nhim tng tc vi chng trnh, gip cho chng trnh tng rng n ang tng tc cc b, thay v tng tc vi mt i tng t xa. Bn trong, Proxy chu trch nhim kt ni vi i tng t xa. Nh hnh di

Bn s bit cch mu Proxy hot ng trong chng 9. i nt v mu Observer (Ngi quan st) Bn c th quen thuc vi mt vi mu trong sch ny, v d nh mu Observer ny chng hn. Mu Observer c th ng k vi h thng. Khi h thng c s thay i, h thng s thng bo cho Observer bit. Khi khng na cn, mu Observer s c g khi h thng.

Hnh 8 cho thy mu Observer cho php 1 observer ng k vi h thng. Hnh 9, cho php observer th 2 ng k vi h thng. Hin ti h thng ang lin lc vi 2 observer. Khi h thng pht sinh mt s kin c th no , n s thng bo vi c 2 observer nh hnh s 10. Ti c gng trnh by tt c cc Mu thit k theo cch d hiu, d tip cn nht. Bn s khng phi nhn vo ng biu , cng vi cc lp tru tng y phc tp na. Cc

chng trong sch nhm vo cc c gi l lp trnh vin, rt hu ch cho cc bn, cho d cc bn khng c ht tt c cc mu. Cc mu thit k trong sch ny tr thnh cc tiu chun v lp trnh trn th gii, v chng hu dng cho cc bn, d bn ang trnh no. Hy vng rng, trong tng lai, khi bn i din vi chng trnh ca mnh, bn t nhin nhn ra: Aha, y chnh l mu Faade.

You might also like