Danh mục: Kỹ thuật lập trình
... Lậptrìnhhớngđốitợng-7-2.Chơngtrìnhđợcchiathànhcácđốitợng.3.Cáccấutrúcdữliệuđợcthiếtkếsaochođặctảđợcđốitợng.4.Cáchàmthaotáctrêncácvùngdữliệucủađốitợngđợcgắnvớicấutrúcdữliệuđó.5.Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàmngoạilaitruynhậptựdo.6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođókhicầnthiết8.Chơngtrìnhđợcthiếtkếtheocáchtiếpcậntừdớilên(bottom-up).SauđâylàmộtsốkháiniệmđợcsửdụngtrongLTHĐT.3.13.13.13.1MMMMộộộộttttssssốốốốkhkhkhkhááááiiiininininiệệệệmmmmĐốĐốĐốĐốiiiittttợợợợngngngng(object)(object)(object)(object)Đốitợnglàsựkếthợpgiữadữliệuvàthủtục(haycòngọilàcácphơngthức-method)thaotáctrêndữliệuđó.CóthểđaracôngthứcphảnánhbảnchấtkỹthuậtcủaLTHĐTnhsau:ĐốĐốĐốĐốiiiittttợợợợngngngng====DDDDữữữữlilililiệệệệuuuu++++PhPhPhPhơơơơngngngngththththứứứứccccLLLLớớớớpppp(class)(class)(class)(class)LớplàmộtkháiniệmmớitrongLTHĐTsovớicáckỹthuậtlậptrìnhkhác.Đólàmộttậpcácđốitợngcócấutrúcdữliệuvàcácphơngthứcgiốngnhau(haynóicáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngtasẽbiếtđợcmộtmôtảcấutrúcdữliệuvàphơngthứccủacácđốitợngthuộclớpđó.Mỗiđốitợngsẽlàmộtthểhiệncụthể(instance)củalớpđó.Tronglậptrình,chúngtacóthểcoimộtlớpnhlàmộtkiểu,còncácđốitợngsẽlàcácbiếncókiểucủalớp.NguyNguyNguyNguyêêêênnnnttttắắắắccccđóđóđóđóngngngngggggóóóóiiiiddddữữữữlilililiệệệệuuuuTrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcầnbiếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàmcũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđếnnhữnglệnhcụthểbêntrongnó.Ngờitagọiđólàsựđónggóivềchứcnăng.TrongLTHĐT,khôngnhữngcácchứcnăngđợcđónggóimàcảdữliệucũngnhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthànhphầndữliệucảunómàphảithôngquacácthànhphầnchứcnăng(cácphơngthức)đểlàmviệcđó.ChúngtasẽthấysựđónggóithựcsựvềdữliệuchỉcótrongmộtngônngữLTHĐTthuầnkhiết(pure)theonghĩacácngônngữđợcthiếtkếngaytừđầuchỉ-1-ChChChChơơơơngngngng1111LLLLậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngngphphphphơơơơngngngngphphphphááááppppgigigigiảảảảiiiiquyquyquyquyếếếếttttbbbbààààiiiitotototoáááánnnnmmmmớớớớiiii1.1.1.1.PhPhPhPhơơơơngngngngphphphphááááppppllllậậậậpppptrtrtrtrììììnhnhnhnhTừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđốitợng(OOP-ObjectOrientedProgramming).Vậythựcchấtnólàgì?Đểhiểuđợcvấnđềnàychúngtabắtđầunhìnlạimộtchútlịchsửpháttriểncácphơngpháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcònrấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâulệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhtuytuytuytuyếếếếnnnnttttíííínhnhnhnh.Khoahọcmáytínhngàycàngpháttriển,cácphầnmềmđòihỏingàycàngphứctạpvàlớnhơnrấtnhiều.Đếnlúcnàyphơngpháplậptrìnhtuyếntínhtỏrakémhiệuquảvàcónhữngtrờnghợpngờilậptrìnhkhôngthểkiểmsoátđợcchơngtrình.Thếlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhccccấấấấuuuutrtrtrtrúúúúcccc(LTCT)rađời.Theocáchtiếpcậnnày,chơngtrìnhđợctổchứcthànhcácchơngtrìnhcon.Mỗichơngtrìnhconđảmnhậnxửlýmộtcôngviệcnhỏtrongtoànbộhệthống.Mỗichơngtrìnhconnàylạicóthểchianhỏthànhcácchơngtrìnhconnhỏhơn.Quátrìnhphânchianhvậytiếptụcdiễnrachođếncácchơngtrìnhconnhỏnhậnđợcđủđơngiản.Ngờitagọiđólàquátrìnhlàmmịndần.Cácchơngtrìnhcontơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviếtcácchơngtrìnhconkhácnhau.NgônngữlậptrìnhthểhiệnrõnétnhấtphơngpháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplậptrìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnàotrongmáytính.BởivìtheoquanđiểmcủaLTCTthìChơngtrình=Cấutrúcdữliệu+Giảithuật.Đểlàmđợcviệcnàyđòihỏingờilậptrìnhphảicókiếnrấtvữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrìnhphụthuộcrấtchặtchẽvàocấutrúcdữliệu,dovậychỉcầnmộtsựthayđổinhỏởcấutrúcdữliệucũngcóthểlàmthayđổigiảithuậtvànhvậyphảiviếtlạichơng trình. Điềunàyrõràngkhôngthểthíchhợpkhiphảixâydựngmộtdựánphầnmềmrấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđóchínhlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngng(LTHĐT).Điểmcănbảncủaphơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩalàlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymộtsựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliênquan.Sựgắnkếtgiữadữliệuvàcáchàmxửlýtrênchúngtạorađốitợng.MộtuđiểmnữacóởphơngphápLTHĐTlàcáchtiếpcậnbàitoántrởnêngầngũivớithựctếhơn.Đểhiểurõhơnvềphơngpháplậptrìnhnày,khônggìtốthơnlàchúngtađivàomộtbàitoáncụthể,chẳnghạnbàitoánquanhệgiađình.ởđâyyêuLậptrìnhhớngđốitợng-3-Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợcvấnđềnàykhông?.Rõràngcâutrảlờilàkhông.Sơđồquanhệtrênhìnhvẽsẽphảimôtảquanhệcủamộtgiađình.Chỉvớichútítsựthayđổivềcấutrúcdữliệucũngdẫnđếnmộtloạtvấnđềđòihỏiphảiviếtlạicácgiảithuậtcủachơngtrình.PhơngpháplậptrìnhmớihớngđốitợngchophépchúngtakhắcphụcđợccácvấnđềđÃnêura.TrongsuốtcáctrìnhbàycủacuốnsáchnàysẽcốgắngnêubậtđợccáchgiảiquyếtvấnđềnhờLTHĐT.TheocáchtiếpcậnLTHĐT,bàitoánquanhệgiađìnhđợcxemxétdớigócđộquảnlýtậpcácđốitợngConConConConngngngngờờờờiiii.Đểbiếtmốiquanhệgiađìnhcủamỗicáthể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủacáthểđó.Nhvậy,mỗiđốitợngconngờicủabàitoáncócácthuộctínhriêng,nóilênrằngchamẹ,anhem,v.v ... Lậptrìnhhớngđốitợng-7-2.Chơngtrìnhđợcchiathànhcácđốitợng.3.Cáccấutrúcdữliệuđợcthiếtkếsaochođặctảđợcđốitợng.4.Cáchàmthaotáctrêncácvùngdữliệucủađốitợngđợcgắnvớicấutrúcdữliệuđó.5.Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàmngoạilaitruynhậptựdo.6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođókhicầnthiết8.Chơngtrìnhđợcthiếtkếtheocáchtiếpcậntừdớilên(bottom-up).SauđâylàmộtsốkháiniệmđợcsửdụngtrongLTHĐT.3.13.13.13.1MMMMộộộộttttssssốốốốkhkhkhkhááááiiiininininiệệệệmmmmĐốĐốĐốĐốiiiittttợợợợngngngng(object)(object)(object)(object)Đốitợnglàsựkếthợpgiữadữliệuvàthủtục(haycòngọilàcácphơngthức-method)thaotáctrêndữliệuđó.CóthểđaracôngthứcphảnánhbảnchấtkỹthuậtcủaLTHĐTnhsau:ĐốĐốĐốĐốiiiittttợợợợngngngng====DDDDữữữữlilililiệệệệuuuu++++PhPhPhPhơơơơngngngngththththứứứứccccLLLLớớớớpppp(class)(class)(class)(class)LớplàmộtkháiniệmmớitrongLTHĐTsovớicáckỹthuậtlậptrìnhkhác.Đólàmộttậpcácđốitợngcócấutrúcdữliệuvàcácphơngthứcgiốngnhau(haynóicáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngtasẽbiếtđợcmộtmôtảcấutrúcdữliệuvàphơngthứccủacácđốitợngthuộclớpđó.Mỗiđốitợngsẽlàmộtthểhiệncụthể(instance)củalớpđó.Tronglậptrình,chúngtacóthểcoimộtlớpnhlàmộtkiểu,còncácđốitợngsẽlàcácbiếncókiểucủalớp.NguyNguyNguyNguyêêêênnnnttttắắắắccccđóđóđóđóngngngngggggóóóóiiiiddddữữữữlilililiệệệệuuuuTrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcầnbiếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàmcũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđếnnhữnglệnhcụthểbêntrongnó.Ngờitagọiđólàsựđónggóivềchứcnăng.TrongLTHĐT,khôngnhữngcácchứcnăngđợcđónggóimàcảdữliệucũngnhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthànhphầndữliệucảunómàphảithôngquacácthànhphầnchứcnăng(cácphơngthức)đểlàmviệcđó.ChúngtasẽthấysựđónggóithựcsựvềdữliệuchỉcótrongmộtngônngữLTHĐTthuầnkhiết(pure)theonghĩacácngônngữđợcthiếtkếngaytừđầuchỉ-1-ChChChChơơơơngngngng1111LLLLậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngngphphphphơơơơngngngngphphphphááááppppgigigigiảảảảiiiiquyquyquyquyếếếếttttbbbbààààiiiitotototoáááánnnnmmmmớớớớiiii1.1.1.1.PhPhPhPhơơơơngngngngphphphphááááppppllllậậậậpppptrtrtrtrììììnhnhnhnhTừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđốitợng(OOP-ObjectOrientedProgramming).Vậythựcchấtnólàgì?Đểhiểuđợcvấnđềnàychúngtabắtđầunhìnlạimộtchútlịchsửpháttriểncácphơngpháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcònrấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâulệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhtuytuytuytuyếếếếnnnnttttíííínhnhnhnh.Khoahọcmáytínhngàycàngpháttriển,cácphầnmềmđòihỏingàycàngphứctạpvàlớnhơnrấtnhiều.Đếnlúcnàyphơngpháplậptrìnhtuyếntínhtỏrakémhiệuquảvàcónhữngtrờnghợpngờilậptrìnhkhôngthểkiểmsoátđợcchơngtrình.Thếlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhccccấấấấuuuutrtrtrtrúúúúcccc(LTCT)rađời.Theocáchtiếpcậnnày,chơngtrìnhđợctổchứcthànhcácchơngtrìnhcon.Mỗichơngtrìnhconđảmnhậnxửlýmộtcôngviệcnhỏtrongtoànbộhệthống.Mỗichơngtrìnhconnàylạicóthểchianhỏthànhcácchơngtrìnhconnhỏhơn.Quátrìnhphânchianhvậytiếptụcdiễnrachođếncácchơngtrìnhconnhỏnhậnđợcđủđơngiản.Ngờitagọiđólàquátrìnhlàmmịndần.Cácchơngtrìnhcontơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviếtcácchơngtrìnhconkhácnhau.NgônngữlậptrìnhthểhiệnrõnétnhấtphơngpháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplậptrìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnàotrongmáytính.BởivìtheoquanđiểmcủaLTCTthìChơngtrình=Cấutrúcdữliệu+Giảithuật.Đểlàmđợcviệcnàyđòihỏingờilậptrìnhphảicókiếnrấtvữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrìnhphụthuộcrấtchặtchẽvàocấutrúcdữliệu,dovậychỉcầnmộtsựthayđổinhỏởcấutrúcdữliệucũngcóthểlàmthayđổigiảithuậtvànhvậyphảiviếtlạichơng trình. Điềunàyrõràngkhôngthểthíchhợpkhiphảixâydựngmộtdựánphầnmềmrấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđóchínhlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngng(LTHĐT).Điểmcănbảncủaphơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩalàlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymộtsựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliênquan.Sựgắnkếtgiữadữliệuvàcáchàmxửlýtrênchúngtạorađốitợng.MộtuđiểmnữacóởphơngphápLTHĐTlàcáchtiếpcậnbàitoántrởnêngầngũivớithựctếhơn.Đểhiểurõhơnvềphơngpháplậptrìnhnày,khônggìtốthơnlàchúngtađivàomộtbàitoáncụthể,chẳnghạnbàitoánquanhệgiađình.ởđâyyêuLậptrìnhhớngđốitợng-3-Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợcvấnđềnàykhông?.Rõràngcâutrảlờilàkhông.Sơđồquanhệtrênhìnhvẽsẽphảimôtảquanhệcủamộtgiađình.Chỉvớichútítsựthayđổivềcấutrúcdữliệucũngdẫnđếnmộtloạtvấnđềđòihỏiphảiviếtlạicácgiảithuậtcủachơngtrình.PhơngpháplậptrìnhmớihớngđốitợngchophépchúngtakhắcphụcđợccácvấnđềđÃnêura.TrongsuốtcáctrìnhbàycủacuốnsáchnàysẽcốgắngnêubậtđợccáchgiảiquyếtvấnđềnhờLTHĐT.TheocáchtiếpcậnLTHĐT,bàitoánquanhệgiađìnhđợcxemxétdớigócđộquảnlýtậpcácđốitợngConConConConngngngngờờờờiiii.Đểbiếtmốiquanhệgiađìnhcủamỗicáthể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủacáthểđó.Nhvậy,mỗiđốitợngconngờicủabàitoáncócácthuộctínhriêng,nóilênrằngchamẹ,anhem,v.v ... Lậptrìnhhớngđốitợng-7-2.Chơngtrìnhđợcchiathànhcácđốitợng.3.Cáccấutrúcdữliệuđợcthiếtkếsaochođặctảđợcđốitợng.4.Cáchàmthaotáctrêncácvùngdữliệucủađốitợngđợcgắnvớicấutrúcdữliệuđó.5.Dữliệuđợcđónggóilại,đợcchegiấuvàkhôngchophépcáchàmngoạilaitruynhậptựdo.6.Cácđốitợngtácđộngvàtraođổithôngtinvớinhauquacáchàm7.Cóthểdễdàngbổsungdữliệuvàcáchàmmớivàođốitợngnàođókhicầnthiết8.Chơngtrìnhđợcthiếtkếtheocáchtiếpcậntừdớilên(bottom-up).SauđâylàmộtsốkháiniệmđợcsửdụngtrongLTHĐT.3.13.13.13.1MMMMộộộộttttssssốốốốkhkhkhkhááááiiiininininiệệệệmmmmĐốĐốĐốĐốiiiittttợợợợngngngng(object)(object)(object)(object)Đốitợnglàsựkếthợpgiữadữliệuvàthủtục(haycòngọilàcácphơngthức-method)thaotáctrêndữliệuđó.CóthểđaracôngthứcphảnánhbảnchấtkỹthuậtcủaLTHĐTnhsau:ĐốĐốĐốĐốiiiittttợợợợngngngng====DDDDữữữữlilililiệệệệuuuu++++PhPhPhPhơơơơngngngngththththứứứứccccLLLLớớớớpppp(class)(class)(class)(class)LớplàmộtkháiniệmmớitrongLTHĐTsovớicáckỹthuậtlậptrìnhkhác.Đólàmộttậpcácđốitợngcócấutrúcdữliệuvàcácphơngthứcgiốngnhau(haynóicáchkháclàmộttậpcácđốitợngcùngloại).Nhvậykhicómộtlớpthìchúngtasẽbiếtđợcmộtmôtảcấutrúcdữliệuvàphơngthứccủacácđốitợngthuộclớpđó.Mỗiđốitợngsẽlàmộtthểhiệncụthể(instance)củalớpđó.Tronglậptrình,chúngtacóthểcoimộtlớpnhlàmộtkiểu,còncácđốitợngsẽlàcácbiếncókiểucủalớp.NguyNguyNguyNguyêêêênnnnttttắắắắccccđóđóđóđóngngngngggggóóóóiiiiddddữữữữlilililiệệệệuuuuTrongLTCTtađÃthấylàcáchàmhaythủtụcđợcsửdụngmàkhôngcầnbiếtđếnnộidungcụthểcủanó.Ngờisửdụngchỉcầnbiếtchứcnăngcủahàmcũngnhcácthamsốcầntruyềnvàođểgọihàmchạymàkhôngcầnquantâmđếnnhữnglệnhcụthểbêntrongnó.Ngờitagọiđólàsựđónggóivềchứcnăng.TrongLTHĐT,khôngnhữngcácchứcnăngđợcđónggóimàcảdữliệucũngnhvậy.Vớimỗiđốitợngngờitakhôngthểtruynhậptrựctiếpvàocácthànhphầndữliệucảunómàphảithôngquacácthànhphầnchứcnăng(cácphơngthức)đểlàmviệcđó.ChúngtasẽthấysựđónggóithựcsựvềdữliệuchỉcótrongmộtngônngữLTHĐTthuầnkhiết(pure)theonghĩacácngônngữđợcthiếtkếngaytừđầuchỉ-1-ChChChChơơơơngngngng1111LLLLậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngngphphphphơơơơngngngngphphphphááááppppgigigigiảảảảiiiiquyquyquyquyếếếếttttbbbbààààiiiitotototoáááánnnnmmmmớớớớiiii1.1.1.1.PhPhPhPhơơơơngngngngphphphphááááppppllllậậậậpppptrtrtrtrììììnhnhnhnhTừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđốitợng(OOP-ObjectOrientedProgramming).Vậythựcchấtnólàgì?Đểhiểuđợcvấnđềnàychúngtabắtđầunhìnlạimộtchútlịchsửpháttriểncácphơngpháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcònrấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâulệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhtuytuytuytuyếếếếnnnnttttíííínhnhnhnh.Khoahọcmáytínhngàycàngpháttriển,cácphầnmềmđòihỏingàycàngphứctạpvàlớnhơnrấtnhiều.Đếnlúcnàyphơngpháplậptrìnhtuyếntínhtỏrakémhiệuquảvàcónhữngtrờnghợpngờilậptrìnhkhôngthểkiểmsoátđợcchơngtrình.Thếlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhccccấấấấuuuutrtrtrtrúúúúcccc(LTCT)rađời.Theocáchtiếpcậnnày,chơngtrìnhđợctổchứcthànhcácchơngtrìnhcon.Mỗichơngtrìnhconđảmnhậnxửlýmộtcôngviệcnhỏtrongtoànbộhệthống.Mỗichơngtrìnhconnàylạicóthểchianhỏthànhcácchơngtrìnhconnhỏhơn.Quátrìnhphânchianhvậytiếptụcdiễnrachođếncácchơngtrìnhconnhỏnhậnđợcđủđơngiản.Ngờitagọiđólàquátrìnhlàmmịndần.Cácchơngtrìnhcontơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviếtcácchơngtrìnhconkhácnhau.NgônngữlậptrìnhthểhiệnrõnétnhấtphơngpháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplậptrìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnàotrongmáytính.BởivìtheoquanđiểmcủaLTCTthìChơngtrình=Cấutrúcdữliệu+Giảithuật.Đểlàmđợcviệcnàyđòihỏingờilậptrìnhphảicókiếnrấtvữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrìnhphụthuộcrấtchặtchẽvàocấutrúcdữliệu,dovậychỉcầnmộtsựthayđổinhỏởcấutrúcdữliệucũngcóthểlàmthayđổigiảithuậtvànhvậyphảiviếtlạichơng trình. Điềunàyrõràngkhôngthểthíchhợpkhiphảixâydựngmộtdựánphầnmềmrấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđóchínhlàphơngphápllllậậậậpppptrtrtrtrììììnhnhnhnhhhhhớớớớngngngngđốđốđốđốiiiittttợợợợngngngng(LTHĐT).Điểmcănbảncủaphơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩalàlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymộtsựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliênquan.Sựgắnkếtgiữadữliệuvàcáchàmxửlýtrênchúngtạorađốitợng.MộtuđiểmnữacóởphơngphápLTHĐTlàcáchtiếpcậnbàitoántrởnêngầngũivớithựctếhơn.Đểhiểurõhơnvềphơngpháplậptrìnhnày,khônggìtốthơnlàchúngtađivàomộtbàitoáncụthể,chẳnghạnbàitoánquanhệgiađình.ởđâyyêuLậptrìnhhớngđốitợng-3-Mộtcâuhỏiđặtra:Liệuvớicấutrúcdữliệucũcóđảmbảogiảiquyếtđợcvấnđềnàykhông?.Rõràngcâutrảlờilàkhông.Sơđồquanhệtrênhìnhvẽsẽphảimôtảquanhệcủamộtgiađình.Chỉvớichútítsựthayđổivềcấutrúcdữliệucũngdẫnđếnmộtloạtvấnđềđòihỏiphảiviếtlạicácgiảithuậtcủachơngtrình.PhơngpháplậptrìnhmớihớngđốitợngchophépchúngtakhắcphụcđợccácvấnđềđÃnêura.TrongsuốtcáctrìnhbàycủacuốnsáchnàysẽcốgắngnêubậtđợccáchgiảiquyếtvấnđềnhờLTHĐT.TheocáchtiếpcậnLTHĐT,bàitoánquanhệgiađìnhđợcxemxétdớigócđộquảnlýtậpcácđốitợngConConConConngngngngờờờờiiii.Đểbiếtmốiquanhệgiađìnhcủamỗicáthể,cầnthểhiệnmộtsốquanhệcơbảnnhcha,mẹ,anhem,concái,vợchồngcủacáthểđó.Nhvậy,mỗiđốitợngconngờicủabàitoáncócácthuộctínhriêng,nóilênrằngchamẹ,anhem,v.v...