CTT526 - Kiến trúc phần mềm
Mẫu thiết kế
Structural Patterns
PGS.TS. Trần Minh Triết
[email protected] 
Trường Đại học Khoa Học Tự Nhiên
Khoa Công Nghệ Thông Tin
Bộ môn Công Nghệ Phần Mềm
Version 1.0 CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu thiết kế trong nhóm
Structural Pattern
 Mẫu Adapter
 Mẫu Bridge
 Mẫu Composite
 Mẫu Decorator
 Mẫu Facade
 Mẫu Flyweight
 Mẫu Proxy
2
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). Design Patterns - Elements of Reusable Object-Oriented 
Software, Addison-Wesley][Christopher G. Lasat r (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Adapter
3
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Adapter
4
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Adapter
5
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Adapter
6
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Adapter
7
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Adapter
8
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Adapter
 Thảo luận
 Bản chất của mẫu Adapter?
 Những tình huống sử dụng
 So sánh với các mẫu liên quan
 Bridge pattern
 Decorator pattern
 Facade pattern
 Proxy pattern
 Template pattern
 Visitor pattern
9
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Bridge
10
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Bridge
11
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Bridge
12
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Bridge
13
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Bridge
14
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Bridge
15
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Bridge
 Thảo luận
 Bản chất của mẫu Bridge?
 Những tình huống sử dụng
 So sánh với các mẫu liên quan
 Adapter pattern
 Facade pattern
 Proxy pattern
 Template pattern
16
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Composite
17
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Composite
18
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Composite
19
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Composite
20
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Composite
21
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Composite
22
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Composite
 Thảo luận
 Bản chất của mẫu Composite?
 Những tình huống sử dụng
 So sánh với các mẫu liên quan
 Chain of Responsibility pattern
 Command pattern
 Decorator pattern
 Flyweight pattern
 Iterator pattern
 Visitor pattern
23
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
24
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
25
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
26
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
27
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
28
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
29
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
30
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
31
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Decorator
 Thảo luận
 Bản chất của mẫu Decorator?
 Những tình huống sử dụng
 So sánh với các mẫu liên quan
 Adapter pattern
 Composite pattern
 Visitor pattern
32
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Facade
33
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Facade
34
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Facade
35
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Facade
36
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Facade
37
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Facade
38
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Facade
 Thảo luận
 Bản chất của mẫu Facade?
 Những tình huống sử dụng
 So sánh với các mẫu liên quan
 Adapter pattern
 Bridge pattern
 Proxy pattern
39
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Flyweight
40
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Flyweight
41
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Flyweight
42
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Flyweight
43
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Flyweight
44
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Flyweight
45
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Flyweight
46
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Flyweight
 Thảo luận
 Bản chất của mẫu Flyweight?
 Những tình huống sử dụng
 So sánh với các mẫu liên quan
 Composite pattern
 Factory pattern
 Interpreter pattern
 State pattern
 Strategy pattern
 Template pattern
47
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Proxy
48
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Proxy
49
[Christopher G. Lasater (2007). Design Patterns, Wordware Publishing, Inc.]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Proxy
50
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Proxy
51
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Proxy
52
[Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1995). 
Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mẫu Proxy
 Thảo luận
 Bản chất của mẫu Proxy?
 Những tình huống sử dụng
 So sánh với các mẫu liên quan
 Adapter pattern
 Bridge pattern
 Facade pattern
53
CuuDuongThanCong.com https://fb.com/tailieudientucntt