LOGO
TÌM HIỂU : Design Pattern – Behavioral
LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG
Lớp:D09CNTT2–Giảngviên:NguyễnMạnhSơn
Nhóm7–bài24:
- Nguyễn Trung Anh
- Đỗ Ngọc Huỳnh
- Ngô Văn Cường
- Nguyễn Đức Thuận
-
1
Add your company slogan
LOGO
Đ
n
h
N
g
h
ĩ
a
ị
Design pattern
…?
… ???
Design
pattern là
gì ?
… ?
Đ nh Nghĩaị
DesignPatternlàtậpcácgiảipháp
chovấnđềphổbiếntrongthiếtkế
cáchệthốngmáytính.Nólàcáctài
liệucógiátrịchongườipháttriểnhệ
thống.
Design Pattern
Add your company slogan
LOGO
History
1977 ý tưởng lần đầu tiên được đưa ra dùng các mẫu
chuẩn trong thiết kế xây dựng và truyền thông
1990 Design Pattern được đưa ra thảo luận rộng rãi.
1994 hội nghị Pattern language of programming
design được tổ chức.
2000 Evitts có tổng kết về cách mà các mẫu xâm nhập
vào thế giới phần mềm.
www.themegallery.com
Design Pattern
Add your company slogan
LOGO
www.themegallery.com
Thành phần
NhómCreational
NhómStructural
NhómBehavioral
DesignPattern
Design Pattern
Add your company slogan
LOGO
www.themegallery.com
Behavioral…
Interpreter
Mediator
Strategy
11 Pattern
Cấu tạo…
Template
Method
Chain of
Respon
sibility
Command
Iterator
Memento
Observer
State
Visitor
Design Pattern
Add your company slogan
LOGO
Behavioral…
Template Method
xácđịnhsườncủa1giải
thuậttrong1thaotáctheo
1sốbướccủacácphân
lớp,chophépxácđịnhlại
1sốbướccủagiảithuật
bênngoàicấutrúccủa
giảithuậtđó
Mẫu hành
vi kiểu lớp
Interpreter
Đưara1ngônngữ,
xâydựngcáchdiễn
đạtngônngữđócùng
vớimộttrìnhphiên
dịchsửdụngcácdiễn
tảtrênđểphiêndịch
cáccâu.
Design Pattern
Add your company slogan
LOGO
Interpreter
Địnhnghĩa
Interpreterđưaramộtngônngữ,xâydựngcáchdiễn
đạtngônngữđócùngvớimộttrìnhphiêndịchsử
dụngcáchdiễntảtrênđểphiêndịchcáccâu.
www.themegallery.com
Design Pattern
Tạomộtcâycúpháp
trừutượngđạidiệncho
mộtcâuđặcthùtrong
ngữphápđãđượcđịnh
nghĩa.
Chứathôngtintoàncục
choviệcthôngdịch
Khaibáo1giaodiện
choviệcthựchiện1
thaotác
Càiđặtmộtphương
thứcthôngdịchchocác
kýphápkhôngphảiđầu
cuối
Càiđặt1thaotácthông
dịchliênkếtvớinhữngvới
nhữngkýphápđầucuối
Add your company slogan
LOGO
Interpreter
Ứngdụng
SửdụngmẫuInterpreterkhicầnphiêndịchmộtngôn
ngữmàtacóthểmiêutảcáccâubằngcầutrúccâycú
pháp.Mẫunàyhoạtđộnghiệuquảnhấtkhi:
Cấutrúcngữphápđơngiản.Vớicáccấutrúcngữpháp
phứctạp,cấutrúclớpcủangữpháptrởnênquálớnvà
khókiểmsoát,việctạoracáccâycúphápsẽtốnthời
gianvàbộnhớ.
Hiệuquảkhôngphảilàyếutốquantrọngnhất.Cáccách
thứcbiêndịchhiệuquảnhấtthườngkhôngápdụngtrực
tiếpmẫuInterpretermàphảibiếnđổicácbiểudiễnthành
cácdạngkháctrước.
www.themegallery.com
Design Pattern
Add your company slogan
LOGO
Template Method
Địnhnghĩa
TemplateMethodlàmẫuxácđịnhsườncủamột
giảithuậttrongmộtthaotác,theomộtsốbước
củacácphânlớp.TemplateMethodchophép
cáclớpconxácđịnhlạichắcchắnmộtsốbước
củamộtgiảithuậtbênngoàicấutrúccủagiải
thuậtđó.
Thựchiệncácthaotác
nguyênthủyđểthựchiện
cácbướcđãchỉratrong
cáclớpconcủathuậttoán
Địnhnghĩacác
PrimitiveOperationtrừu
tượng,cácthaotácnày
địnhnghĩacáclớpconcụ
thểđểthựchiệncácbước
củamộtgiảithuật
Add your company slogan
LOGO
Template Method
Ứngdụng
Thựchiệncácphầncốđịnhcủamộtgiảithuậtkhiđặtnó
vàocáclớpconđểthựchiệnhànhvicóthểthayđổi.
Khicáclớphànhvithôngthườngnênđượcphântáchvà
khoanhvùngtrongmộtlớpthôngthườngđểtránhsự
giốngnhauvềmã.
Điềukhiểnmởrộngcáclớpcon.Tacóthểđịnhnghĩa
mộttemplatemethod,templatemethodnàygọicácthao
tác“hook”tạicácđiểmđặcbiệt,bằngcáchđóchophép
cácmởrộngchỉtạicácđiểmđó.
www.themegallery.com
Add your company slogan
LOGO
Chain of responsibility
Ý nghĩa
Mẫunàythiếtlậpmộtchuỗibêntrongmộthệ
thống,nơimàcácthôngđiệphoặccóthểđược
thựchiệnởtạimộtmứcnơimànóđượcnhận
lầnđầuhoặclàđượcchuyểnđếnmộtđốitượng
màcóthểthựchiệnđiềuđó
Design Pattern
Add your company slogan
LOGO
Chain of responsibility
MôHìnhMẫu
Design Pattern
Nắmgiữcácyêucầu
mànóđápứng
Địnhnghĩa1giaodiện
choviệcnắmgiữcác
yêucầu,càiđặtliênkết
đếncácSuccerssor
Add your company slogan
LOGO
Chain of responsibility
Trường hợp ứng dụng:
Cómộtnhómcácđốitượngtrongmộthệthốngcó
thểđápứngtấtcảcácloạithôngđiệpgiốngnhau
Cácthôngđiệpphảiđượcthựchiệnbởimộtvài
cácđốitượngtronghệthống
Cácthôngđiệpđitheomôhình“thựchiện–
chuyểntiếp”,mộtvàisựkiệncóthểđượcthực
hiệntạimứcmàchúngđượcnhậnhoặctạira,
trongkhisốkhácphảiđượcchuyểntiếpđếnmột
vìađốitượngkhác
Design Pattern
Add your company slogan
LOGO
Command Pattern
Ý nghĩa
Góimộtmệnhlệnhvàotrongmộtđốitượngmànócó
thểđượclưutrữ,chuyểnvàocácphươngthứcvàtrảvề
mộtvàiđốitượngkhác.
Mô Hình Mẫu
Design Pattern
Add your company slogan
LOGO
Command Pattern
Trường hợp áp dụng
Hỗtrợundo,logginghoặctransaction
Thựchiệnhàngđợilệnhvàthựchiệnlệnhtại
cácthờiđiểmkhácnhau
Hạnchếsựchặtchẽcủayêucầuvớiđốitượng
thựchiệnhoàntấtyêucầuđó
Design Pattern
Add your company slogan
LOGO
Interator
MẫuIteratorcungcấpkhảnăngtruycậpvà
duyệtcácthànhphầncủamộttậphợpkhông
cầnquantâmđếncáchthứcbiểudiễnbên
trong.
Design Pattern
Add your company slogan
LOGO
Interator
Giảsửrằngkháchhàngphảilàmviệcvớimột
tậphợpphứctạpvàrắcrối
Kháchhàngcóthểsửdụngiteratorđểlàmcầu
nốivớitậphợp
Design Pattern
Add your company slogan
LOGO
Interator
ỨngDụng:
-Hỗtrợnhiềuphươngánduyệtmộttậphợp.
-Đơngiảnhoágiaodiệntậphợp.
-Chophépcólớnhơnmộtcáchthứcduyệtđối
vớimộttậphợptạimộtthờiđiểm.
VíDụ:
Design Pattern
Add your company slogan
LOGO
Mediator
a.Vấnđềđặtra:
Add your company slogan
LOGO
Mediator
b.Địnhnghĩa:
Mediatorlàmộtđốitượngdùngđểđónggóicách
thứctươngtáccủamộttậphợpcácđốitượng.
Add your company slogan
LOGO
Mediator
Đặcđiểm:
-
Tráchnhiệmcánhânđốitượng.
-
Mediatorlàđốitượngủynhiệmthôngminhduy
nhất
-
Trongsuốtđốivớiđốitượngkhác.
-
Nếunhiềuđốitượngthamgia,Mediatorlànơi
đăngkýduynhất,cácđốitượngkháckhôngcần
phảibiếtgìvềcácđốitượngmới.
Add your company slogan
LOGO
Mediator
c.Sơđồ
Add your company slogan
LOGO
Mediator
d.Ưuđiểm:
-Giảmliênkếtgiữacáccolleagues.
-Đơngiảnhoágiaothứcgiữađốitượngbằngcáchthaycác
tươngtácnhiều-nhiềubằngtươngtác1-nhiềugiữanóvàcác
colleagues
-Trừutượnghoácáchthứctươngtáchợptácgiữacácđối
tượng.Tạorasựtáchbiệtrõrànghơngiữacáctươngtácngoài
vàcácđặctínhtrongcủađốitượng
- Điều khiển trung tâm: thay sự phức tạptrong tương tác
bằngsựphứctạptạimediator
-Tăngkhảnăngtáisửdụng
-Chophéptuỳbiếnmộtứngxửđượcphântántrongvàilớp
màkhôngphảiphânnhiềulớpcon.
Add your company slogan
LOGO
Mediator
Trườnghợpứngdụng:
-Mộtnhómcácđốitượngtraođổithôngtin
một cách rõ ràng nhưng hệ thống khá phức tạp
dẫnđếncáckếtnốikhôngcócấutrúcvàkhóhiểu.
-Việcsửdụnglạimộtđốitượnggặpkhókhăn
vìnóliênkếtvớiquánhiềuđốitượngkhác.
-Chophéptuỳbiếnmộtứngxửđượcphân
tán trong vài lớp mà không phải phân nhiều lớp
con.
Add your company slogan
LOGO
Mediator
Vídụminhhọa