You are on page 1of 21

DP4Dummies Chng 2: Strategy

Posted on Thng Hai 21, 2013by haihth

Chng 2: Ln k hoch hnh ng vi Mu Strategy (Mu chin lc) Trong chng ny, chng ta s i qua cc ni dung sau: M rng vic lp trnh hng i tng

Lm quen vi cc khi nim tru tng, ng gi, a hnh v k tha Chuyn i qua li gia 2 khi nim is-a v has-a X l cng vic bng cc thun ton p dng mu Strategy vo thc t

L mt chuyn gia thit k mu, bn i vo phng hp ca cng ty MegaGigaCo, gim c iu hnh v cc thnh vin ban qun tr ang n mng mt hp ng mi v thit k xe hi, mi ngi v tay v h reo n mng quanh phng. Hp ng ny s em n doanh s ln cho chng ta, gim iu hnh ni, cng vi ting vang bp bp ca ru champagne v s phn khch ca gim c. Vic ca chng ta l phi chc chn c c mt quy trnh thit k ng. ng nhn nt ln chic n chiu v hnh nh cc biu hin ln tng. ng ni tip: y l kin ca ti Sai, bn ni Gim c thong mt cht git mnh v ni tip, Nhng nu chng ta Khng, bn lc u ni. Xin th li, bn ni vi Gim c v ban iu hnh, R rng l chng ta ang mo him vi hp ng ny v i sai hng. Ti c th thy c t vn khi nhn vo cc biu ny Ban gim c th thm vi v tp trung v Gim c hi. Theo kin anh th sao Ti l chuyn gia thit k mu, ngi s gii quyt cc vn v lin quan v thit k, Bn ni. D nhin l cho nhng hp ng ln

Gim c vit ra mt con s d on cho chi ph, mt con s kh ln, tuy nhin hnh nh vn cha ln i vi bn. Li sai, bn ni V gim c nhn bn nhu my. Mu thit k, bn gii thch. Cc gii php chung gii quyt cho cc vn lp trnh thng gp. Khng ch vy, n cn gip vic lp trnh tt hn, bo dng, v cng vic nng cp d dng hn . ng thy , vic thu mt chuyn gia nh ti c nhiu ngha, khi ti thy mt vn trong vic lp trnh m c th gii quyt theo mt mu thit k no , ti c th ni chi tit v n cho ng bit. Tt, cc lp trnh vin trong cng ty ni mt cch min cng, kin ca anh v mu thit k nghe cng hay y. Nhng chng ta s dng phng php lp trnh hng i tng, iu cha gii quyt c vn ? Khng bn ni. Thc t th ni dung chnh ca mu thit k l chng m rng khi nim lp trnh hng i tng. M RNG KHI NIM LP TRNH HNG I TNG? Chng ta nhc li cun sch ca Gang Of Four (GOF: B t tc gi), ta Mu thit k: S dng li cc thnh phn trong vic lp trnh hng i tng do nh xut bn Addison Wesley, 1995 xut bn. S dng li l mt kha cnh quan trng khi lm vic vi cc mu thit k, v v th n cng gii quyt c cc vn ca lp trnh hng i tng(OOP). Ti s tho lun trc v OOP trong chng ny, v sau s cho bn thy mi tng quan gia OOP v mu Strategy hay cn gi l mu chin lc OOP ban u c pht trin nh l mt phng php lp trnh cho cc vn ln v phc tp. tng chnh l ng gi tt c chc nng vo trong i tng. Ni cch khc, y l phng php chia tr. Trc khi OOP ra i, bn lp trnh theo phng php th tc, bn c th chia cc tnh nng ca chng trnh thnh cc th tc khc nhau, nhng iu cng ngy cng phc tp khi kch c chng trnh ln thm. Khi chng ta cn phi c mt phng php mi qun l cc th tc mt cch d dng, v l nguyn nhn ra i ca mt phng php mi, phng php qun l trn i tng.

V d, bn hy nhn vo nh bp v cch hot ng ca n, tht l c man cc s phc tp. T lnh phi c cc bm lm mt, b phn cm bin nhit, qut v vn vn. Bp l c th bao gm nhiu thit b nh b phn nhit , b nh thi gian, n..Theo cch nhn nhn ny, khi ta xem xt nh bp vi mi b phn cng mt lc, ta thy nh bp qu phc tp. Nhng nu bn bao bc tng thnh phn, thnh cc i tng, tnh hnh c th d dng x l hn rt nhiu. y l ci t lnh. y l ci bp l. l ci my ra chn v vn vn. Khng vn g ln c. Cc chi tit nh lm vic cng nhau c ta ng gi thnh mt i tng. cng chnh l cc i tng trong lp trnh hng i tng. Bn gp cc chc nng vo trong mt i tng v chng d dng c nhn bit, no l ci t lnh, bp l hay my ra chnV phng php lp trnh da trn cc i tng c gi l lp trnh hng i tng (Tt nhin bn chng nghe ai ni ti lp trnh hng t lnh, hay lp trnh hng bp l ) V d, trong chng trnh ca bn, bn c mt i tng tn l Mn hnh, n bao gm cc chc nng hin th d liu m bn mong mun. Mt i tng khc tn C s d liu s lm nhim v giao tip vi my ch c s d liu v vn vnC th c nhiu phc tp bn trong tng i tng, nhng khi bn ng gi mi th vo i tng, mi th tr nn d dng hn rt nhiu. Bn c th lm vic vi khi nim i tng Mn hnh v mt s chc nng n gin ca n nh ThitLpHSQut, CanhChnhMnHnh, ThtLpBmVideo v hng t chc nng khc. N lm cho lp trnh tr nn d dng hn, v l l do ti sao lp trnh hng i tng tr thnh phng php mnh m v ph bin hn bao gi ht. BN KHI NIM CHNH CA OOP OOP bao gm bn khi nim chnh l tru tng, ng gi, a hnh v k tha. Ti s tho lun chng trong phn sau y: Tru tng l g? Khi bn lm vic vi mu thit k, bn s thy phn ln u lin quan n khi nim tru tng. Tru tng l cch thc bn ngh ra xem xt vic gii quyt mt vn no . Tru tng khng phi l mt k thut lp trnh. Thc cht, n ch c ngha l bn phi nhn thc c vn trc khi p dng k thut hng i tng.

Tru tng l cch bn phn chia, cch gii quyt vn thnh nhng phn on nh hn. y l cch thc bn gii quyt vn bng cch chia chng ra thnh tng phn nh c th qun l c. Ni cch khc, tru tng ha mt bi ton, n gin ch l cch gii quyt bi ton theo kiu hng i tng. Cc d liu cn thit cho tng i tng s tr thnh thuc tnh ca i tng , thuc tnh c th l ring t cho i tng hoc cng cng cho i tng khc s dng. Cc hnh vi m i tng th hin trong th gii thc cng tr thnh mt hnh ng ca chng v c vit thnh m ca chng trnh. Khi bn chc chn tm ra hng gii quyt mt bi ton ng n, bn mi c th p dng cc mu thit k. Thng thng, khi lm vic vi mu thit k bn s tn nhiu thi gian hn cho vic tru tng ha cc khi nim, hn l lm vic vi tng i tng c th. ng gi l g? Khi bn a tt c chc nng v d liu vo trong mt i tng, bn ng gi chng. y l sc mnh thc s ca vic lp trnh hng i tng. Bn g b s phc tp ca i tng khi ng gi tt c d liu vo trong i tng . ng gi l cch bn a hng t ng dy in, ng, cm bin nhit, n vo trong mt i tng l t lnh. Khi bn ng gi chc nng vo trong mt i tng, bn quyt nh cch thc m i tng giao tip vi th gii bn ngoi. Mt ci t lnh c th mt qun l hng t th phc tp bn trong, tuy nhin ngi s dng ch quan tm l n c th lm lnh thc n hay khng? Cng cch thc , bn cng ch nh u l chc nng, thuc tnh bn trong ca t lnh, u l chc nng thuc tnh n giao tip vi th gii bn ngoi. C mt tng ng sau vic ng gi Bn che giu nhng th phc tp bn trong i tng v to ra mt giao din n gin i tng giao tip vi phn m cn li ca bn. Mu tht k cng l mt trng hp c bit ca s ng gi. Bn phi ng gi nhng g bn cho l d thay i nht Mt s mu thit k xoay quanh tng l trch ra nhng phn m d thay i nht hoc phn cn phi bo tr nhiu v ng gi chng vo mt i tng ring dng dng x l hn. Xuyn sut cun sch ny, bn s nhn thy

nhiu v s ng gi v cch thc bt ng m mu thit k gii quyt cc vn thng gp. a hnh l g? Mt nn tng khc ca lp trnh hng i tng l tnh a hnh. l kh nng khi chng ta lp trnh mt chc nng, chc nng c th lm vic vi nhiu loi i tng khc nhau, ty thuc vo kiu thc s ca i tng trong thc t. V d, bn c th vit m x l tt c cc hnh dng khc nhau nh hnh trn, hnh ch nht, tam gic.. vn vn. Mc d chng c hnh dng khc nhau, chng c chung mt s hnh ng, v d nh chng c chung chc nng l cVRa. S dng tnh a hnh, bn c th vit code thc hin nhiu hnh ng trn loi hnh dng m bn nh lm vic v sau quyt nh hnh dng thc t no s c s dng khi chy chng trnh. a hnh (nhiu hnh th) c ngha l m bn vit ra c th s dng c nhiu kiu ca i tng m bn khng phi vit li m.

Sau y l v d. Bn to ra mt lp (class) Shape vi phng thc chung l draw

Sau bn c th m rng mt lp mi, lp Rectangle, t lp Shape, v cho php n v mt hnh ch nht nh sau:

Bn mun v mt hnh? Khng vn g. Bn vit mt t m to mt i tng tn shape v gi phng thc draw:

Kt qu khi chy chng trnh:

Mun v hnh ch nht s dng cng m trn? Khng vn g. y l s k diu ca tnh a hnh, hy to li bin shape vi kiu rectangle v chy li on code trn:

Kt qu l:

Trong trng hp th nht, bn np mt i tng shape vo bin shape v gi phng thc draw. Trong trng hp th hai, bn ly mt i tng rectangle v np n vo cng bin shape ( mc d l bn khai bo n nh l 1 i tng shape) v sau gi phng thc draw. Vy l bn cng s dng mt bin shape, lu gi mt i tng shape, mt i tng rectangle, chng trnh vn hot ng v rectangle c tha k t shape. y l cch bn quyt nh kiu i tng no c np vo bin shape khi chy chng trnh v khi ton b m ca bn vn khng h thay i. K tha l g?

c im cui cng v ni bt ca lp trnh hng i tng l tnh k tha. L qui trnh m mt lp c th tha hng ton b phng thc v thuc tnh ca mt lp khc. Bn c th nhn thy s k tha trong v d trc, bt u t lp Shape:

Sau lp Rectangle k tha t lp Shape nh sau:

a hnh thng xut hin khi bn lm vic vi mu thit k bi v mu thit k c xu hng ng h kt hp hn l k tha (Bn s dng kt hp khi i tng ca bn cha i tng khc thay v tha hng t chng). K tha chnh l mi quan h Is-a (l mt). Ta c th ni Rectangle is-a Shape. Mu thit k- lp trnh hng i tng thng s dng vic kt hp hn l k tha. Khi bn s dng kt hp, m ca bn cha ng mt i tng khc, hn l tha hng t chng. Phng php ny t ra mm do, uyn chuyn thch ng vi nhiu loi i tng trong cng mt cch, cng mt on m. Mu thit k thng da trn tnh a hnh. Kt hp hay a hnh: Th nghim u tin khi thit k mt chic xe hi mi. Vy ai ni vi bn rng Kt hp th tt hn K tha. C l v d sau lm sng t vn . Cc lp trnh vin ti MegaGigaCo (phn u chng) u bit v s k tha v h bt u vic tht k xe hi mi bt chp li cnh bo ca bn cho n khi bn c c hi ni chuyn vi h. H bit h ang phi thit k mt lot xe, v vy h bt u to ra mt lp c s tn Vehicle vi mt phng thc tn l go , phng thc ny xut hin ln dng ch Now Im driving.

Sau h tao tip mt lp mi, nh l lp StreetRacer, s dng Vehicle lm lp c s nh sau:

Chng trnh ti y vn tt p. Bn c th cho chy chng trnh vi lp StreetRacer nh sau:

Kt qu nhn c

Bn cng c th chy cng lc street racer v formula one racer vi cng mt cch nh sau:

V kt qu l

Khng ti. Gim c v ban iu hnh ni. Vy cn g phi s dng mu thit k H hi m mt nhn chm chm vo bn. Nhng sau h nhn c mt hp ng sn xut my bay trc thng Helicopter. My bay trc thng ? H l lun, th cng l mt phng tin vn chuyn. V vy h to mt lp Helicopter , c m rng ra t lp Vehicle :

Nhng li xut hin mt vn . Nu nh bn s dng helicopter trong cng mt iu kin nh xe hi:

Bn s nhn c 3 phng tin nh sau: mt xe street racer, mt xe Formula One, mt my bay helicopter nh sau:

C g khng n, Gim c ni mt cch h nghi. Ti sao helicopter (my bay trc thng) m li ang chy? Hnh nh n ang bay th mi ng? Tuy nhin vn thc s ti t khi cng ty MegaGigaCo nhn c mt hp ng ch to my bay phn lc Jet, khi chng cng c k tha t lp Vehicle :

Khi bn cho chy bn phng tin trn: mt xe street racer, mt xe formula one, mt my bay trc thng helicopter, mt my bay phn lc jet, bn nhn c kt qu sau:

Chc chn l c sai st y V gim c ln ting. My bay phn lc Jet th khng chy trn ng, chng trn khng. Chng bay v rt nhanh. Khng vn g, cc lp trnh vin trong cng ty p. Chng ti s ghi (override) ln phng thc go ca lp Helicopterv lp Jet sa cha chng. H chnh sa li nh sau:

Gi lp my bay trc thng Helicopter bay c. OK. Gim c ni Tuy nhin vo tun sau, ban gim c hp v quyt nh phi chuyn t Now Im flying sang Now, Im flying 200mph v nhiu s thay i ti t k tip C mt vn ny sinh y, bn gii thch. Cc lp trnh vin th hin mt chc nng n gin l li mt chic xe hay mt chic phi c qua nhiu lp con. c th cha l mt vn ln nhng nu bn x l cc cng vic ny mt cch kh thng xuyn, th vic phi chnh sa mi lp con nh vy s tr thnh mt vn bo tr kh nghim trng. Bn ni tip: c th l s k tha khng phi l cu tr li cho tnh hung ny. Ni m bn cn phi thay i chc nng thng xuyn cc lp con. Bn cn phi chnh sa, bo tr phn ln cc on m cc lp con khi c s thay i. V khi c cng nhiu lp k tha lin quan, chng cng cn c phi bo tr khi c s thay i, v khi bn phi cp nht cc phng thc go mi mi. Vn bn phi gii quyt y l lm sao trnh c vic thay i cc lp con. Nu bn khng trnh c iu ny, bn s phi chnh sa rt nhiu file cp nht m ca bn.

C l c mt cch tt hn x l vn ny hn l s dng s k tha. Hey mt lp trnh vin ni, Sao anh khng s dng giao din interface thay cho s k tha inheritance? Anh c th ci t mt giao din IFly v cho giao din mt phng thcgo v cho lp Helicopter hin thc giao din nh sau:

Khng tt bn ni. Anh vn cha gii quyt n tha vn . Mi lp v lp con vn phi hin thc cho ring n mt giao din, cng ging nh trng hp ca s k tha. Bi v giao din th khng ci t ni dung, bn vn phi vit code cho tng lp, iu ny c ngha l chng c s dng li c mt on code no c. Nm vng s thay i t is-a sang has-a Mi vic u thay i. Trong thi bui thng mi pht trin, mi th thay i nhanh chng. V vy vic lp k hoch cho s thay i l rt ng gi. Nu bn c mt vn nh cn phi c mt gii php nh, bn c th khng cn phi lp mt k hoch ln lao cho s thay i. Nhng nu bn lm vic trong mt d n nghim tc, vi mt khi lng cng vic ng k, th ng l lc bn nn nhn li v mt k hoch nghim tc khi c s thay i. Cc on m m bn vit hm nay, s phi chnh sa li ph hp vi nhng yu cu pht trin trong tng lai. Hu ht cc nh pht trin khng ch ti vn ny, v sau h lun lun hi tic. Vy cu hi t ra l d n phi ln ti u, bn quan tm n vn thay i. l s nh gi ca ring bn, mt phn ca ngh thut lp trnh. Bng cch nm vng phng php x l s thay i, bn s bit r hn khi no th nn thc hin n. C mt du hiu ng ch y: Phn chia cc on m d thay i trong chng trnh ring bit vi phn cn li. V lm cho chng cng c lp cng tt cho s bo tr nng cp. Bn cng nn c gng ti s dng nhng phn ny cng nhiu cng tt.

iu ny c ngha l nu ng dng ca bn c mt phn b thay i, bn c th em n ring ra, sau thay i tng phn ring bit mt cch d dng trong khi vn khng b nh hng bi nhng tc dng ph ca n. V y l cch lp k hoch cho s thay i, v v sao k tha li khng th gii quyt tt cc s thay i ny. Vi s k tha, lp c s v cc lp con c mt mi quan h is-a. V d , lp Helicopter c quan h is-a vi lp Vehicle, iu ny c ngha Helicopter tha k mi th t Vehicle, v nu bn phi chnh sa cc phng thc ny, bn s gp phi vn bo tr n trong tng lai. Lp c s x l phng thc theo mt cch, v lp k tha li thay i n, v lp k tip li thay i n thm mt ln na. V cui cng bn c mt l mt lc cc bin th ca cng 1 phng thc qua cc lp con. Mc khc, nu bn c th trch nhng on code d thay i v ng gi chng vo i tng, bn c th s dng cc i tng ny khi cn. Nhim v mi l x l trn cc i tng ny. Bn khng vic x l ly lan qua cc lp con. Lm nh vy s cho php bn chnh sa m ca bn bng vic to ra s kt hp composites cc i tng. Vi composites kt hp ny, bn c th d dng chn ra v s dng i tng cn thit. Mt quan h has-a mi c to ra. Mt chic xe street racer s c mt has-a cch di chuyn, c ng gi vo i tng. Mt my bay trc thng s c mt cch ring di chuyn, v cng c ng gi vo i tng. Tng i tng s thc hin hnh ng ca ring n. Mt i tng, mt nhim v thng l c ngha hn l vic k tha cc lp, v to ra hng t cc lp con. Ni cch khc, chng ta sp xp li da trn nhim v ca lp, ch khng phi trn s k tha. S dng k tha s t ng ci t mi thuc tnh mt cch nghim ngt, bao gm c quan h is-a, l th gy ra cc rc ri khi bo tr cng nh khi m rng. Nu bn t k hoch cho s thay i, bn nn ngh ti quan h has-a , ni m m ca bn bao gm nhiu i tng m c th d dng cp nht khi c s thay i xy ra. Gi : Khi c k hoch cho s thay i, hy thay th quan h is-a thnh quan h hasa v t cc on m d thay i vo cc i tng trong ng dng ny hn l k tha chng. K HOCH CHNH SA

Lm th no m tng phn chia cc on m d thay i s hot ng trong v dVehicle/StreetRacer/Helicopter nhc trc y. Theo kin ca gim c iu hnh, phn c thay i nhiu nht l phng thc go , do chng ta s tch n ra. Trong thut ng v thit k mu, mi cch hin thc mt phng thc c gi l 1 thut ton(algorithm) hay c th gi l 1 chin lc (strategy). V vy bn c th to mt tp hp cc gii thut s dng cho cc bin ca bn nh StreetRacer, FormulaOne, Helicopter, vJet . Lm nh th phn chia cc on m d thay i vo trong thut ton. Tng thut ton s hon thnh 1 nhim v. Cch to thut ton chc chn mi thut ton u hin thc cng mt phng thc (phng thc go trn). Bn cn phi to mt giao din interface cho n (ND: Interface l mt khi nim rt hay trong OOP, m khi c dp chng ta s tho lun v n) nh sau:

Giao din GoAlgorithm c mt phng thc duy nht go. chc chn rng mi thun ton c th c s dng bi bt k lp Vehicle no, ta cn phi hin thc interface ny. Thut ton u tin GoByDrivingAlgorithm , s hin th vn bn Now Im driving. V y l m ca thut ton:

Ngoi ra, thut ton GoByFlying, s hin th vn bn Now Im flying. M nh sau:

V cui cng, thut ton GoByFlyingFast, s c s dng bi my bay phn lc, hin th dng vn bn Now Im flying fast

Tuyt vi. Bn va phn chia cc thut ton ca mnh ra khi phn m. Bn ang thc hin thao tc thc thi quan h has-a hn l quan h is-a. By gi bn c th a cc thut ton ny vo s dng. S DNG THUT TON Bn ang c mt s thut ton, bn c th to cc i tng v s dng quan h has-a thay cho is-a. Sau khi bn to mt i tng t mt thut ton, bn cn phi lu tr i tng u . V vy hy thm vo lp c s Vehicle, mt phng thc mi SetGoAlgorithm. Phng thc ny s lu tr thut ton m bn mun s dng. M nh sau:

By gi khi bn mun s dng mt thut ton c th no lp k tha, tt c vic cn lm l gi phng thc setGoAlgorithm vi mt i tng thut ton ng, theo cch nh sau: Phng thc go ca lp Vehicle c cht thay i. Trc y l:

Tuy nhin, by gi n phi gi phng thc c nh ngha cc lp thut ton. M mi nh sau:

By gi th tt c nhng g phi lm l chn ng thut ton m bn mun s dng cho phng tin no . V d vi street racer s l thut ton GoByDrivingAlgorithm

Xe Formula One cng s dng cng mt thut ton trn, m nh sau:

Nhng my bay trc thng helicopter s s dng thut ton GoByFlyingAlgorithm:

V my bay phn lc Jet s s dng thut ton GoByFlyingFastAlgorithm

OK. n lc chy th chng trnh. Bin dch v chy th chng trnh nh sau:

Kt qu:

Kt qu ng nh mong i. Tuy nhin by gi bn s dng mi quan h has-a thay v quan h k tha is-a. T lc ny bn c th s dng cc thut ton xuyn sut chng trnh, bt c u, v n khng cn nm trong cc lp StreetRacer hay Helicopter na. K thut ny thay th cho cch to cc lp con v s dng k tha. Nu bn s dng mt quan h k tha is-a, bn s bt u s rc ri cho vic kim sot c cc phng thc trong lp c s v cc lp con trong v d l bn phi np ln phng thc go cho lpHelicopter v Jet. Nu bn s dng m hnh has-a, bn c th to ra mt dng h cc thut ton mt cch r rng, v sau bn chn mt thut ton thch hp s dng. Theo cch ny, bn c th khc phc c vn m s k tha gy ra cho hu ht cc lp trnh vin: nu bn phi gii quyt mt chc nng c th no qua nhiu th h ca mt lp, v chc nng ny lin tc thay i, bn s phi chnh sa rt nhiu m ca mnh. Mt khc, khi bn tp trung chc nng vo mt thut ton duy nht, vic thay i n s d dng hn rt nhiu. Quay li v d trn, khi ban gim c mun thay i t Now Im flying sang Now Im flying at 20 mph. n gin, bn ch cn chnh sa thut ton GoByFlying:

V by gi tt c m ca bn t ng c cp nht, bn khng cn thit phi i tm v chnh sa tng lp con nh trc na. Theo cch ny, bn tp trung s x l mt chc nng vo mt i tng thut ton duy nht, bn s d dng qun l i tng ny trong trng hp yu cu chc nng b thay i. Chn la thut ton khi thc thi chng trnh i mt cht, Gim c MegaGigaCo ni. C vic xy ra, my bay phn lc khng ch bay nhanh, u tin n chy trn ng bng mt lc, v khi p xung mt t, n li tip tc chy trn ng bng na. V vy chng ta phi chnh sa chc nng cho n li : u tin l chy trn ng bng, ri bay, ri chy tip? l v mt l thuyt, cc lp trnh vin rn r Nhng iu lm chng ta phi vit thm nhiu on m na Khng sao c Bn ni. l mt trong nhng im k diu ca vic s dng mt i tng thut ton bn ngoi. Bn c th thay i n khi bn thc thi chng trnh Khi bn vit m cho mt chc nng trong mt lp, bn khng th thay i n khi thc thi chng trnh. Tuy nhin khi bn s dng mt i tng thut ton bn ngoi vi mi quan h has-a, bn d dng thay i chc nng lc chng trnh hot ng. Ni cch khc mt quan h has-a cho php bn d dng thay i hn mt quan h isa c bit khi chng trnh ang hot ng. V y l v d cho vic s dng linh hot cc thut ton, cng nh vic thay i n khi chng trnh ang chy. Bn c th to mt my ban phn lc, c th chy trn ng bng vi thut ton GoByDrivingAlgorithm, nh m sau:

my bay phn lc chy c trn ng bng, bn gi phng thc go:

Bn c th ci t thut ton mi setGoAlgorithm cho my bay phn lc, thay i phng thc go mt cch linh ng, v sau gi li phng thc go thy s khc bit.

V y l kt qu: my bay phn lc, chy trn ng bng, ri bay, ri chy trn ng, khng vn g c.

Bn thy , vic chuyn i mt thut ton lc thc thi chng trnh rt d dng. Ni cch khc, nu bn vic x l thut ton vo ni ti mt lp, bn s khng th thay i n lc chy chng trnh. Nhng khi bn ci t mt chin lc Strategy, bn s d dng thay i n khi chy chng trnh. Tt c nhng iu trn mang chng ta n mt mu thit k Strategy, hay c gi l mu chin lc. MU STRATEGY Mu chin lc Mu chin lc l mu thit k chng ta hc u tin trong quyn sch ny, v thc t l chng ta cng nhau i xuyn sut qua chng ny hiu v n. ngha thc s ca mu chin lc l bn tch ri phn x l mt chc nng c th ra khi i tng ca bn. Sau to ra mt tp hp cc thut ton x l chc nng v la chn thut ton no m bn thy ng n nht khi thc thi chng trnh. Mu thit k ny thng c s dng thay th cho s k tha, khi bn mun chm dt vic theo di v chnh sa mt chc nng qua nhiu lp con. Chng ta c th nhn thy vn tng qut nh sau. u tin mi vic u n, bn c mt i tng, mt chc nng

Mt thi gian sau , do yu cu c bit, bn cn c thm mt lp mi, bn k tha lp c, v ghi ln phng thc c tha hng. Bn ang dn tri vic x l chc nng qua nhiu lp con nh hnh:

Mu Strategy, mu chin lc ni rng: bn cn phi tch nhng phn d thay i v ng gi chng vo cc i tng v bn c th s dng cc i tng ny khi cn. By gi bn c th chnh sa m ca mnh thng qua vic to s kt hp cc i tng. Khi chng trnh thc thi, bn ch cn s dng ng i tng m bn cn. Nh hnh sau:

Cun sch GoF ni rng mu Strategy, mu chin lc nh sau: nh ngha mt tp hp cc thut ton, ng gi chng thnh tng loi mt, v gip chng c th hon i cho nhau. Mu chin lc gip cc thut ton c lp hn khi c s dng. Mu chin lc ch ra rng, i khi, n s c p dng tt cho mc ch hng chc nng. V n c bit quan trng khi bn mun thc hin cng vic nng cp, bo tr cho

cc on m d thay i ca bn mt cch ring bit vi ton b m ca chng trnh, hoc khi bn mun thay i thut ton s dng khi chng trnh c thc thi. Gi : Bn nn s dng mu Strategy khi c nhng tnh hung sau: Bn c mt on m d thay i, v bn tch chng ra khi chng trnh chnh d dng bo tr

Bn mun trnh s rc ri, khi phi hin thc mt chc nng no qua qu nhiu lp con. Bn mun thay i thut ton s dng khi chy chng trnh

Chng ti khng cung cp m ngun cho bn. Thay vo , bn hy lm quen vi vic suy ngh, v khi tng ti l lc bn nm vng mu thit k ny. iu ny cng ging nh mt cng vic phi thc hin cho mu Chin lc. Vic hiu bit cch thc lm vic ca cc mu thit k khc nhau cng gip bn c c hi tho lun vi ng nghip khc. Hu ht cc lp trnh vin chuyn nghip u bit mt s mu thit k c bn. V khi mi ngi trong nhm ca bn ni ti mu chin lc, mi ngi gt u ra v hiu bit, th bn cng c th lm nh vy.

You might also like