SlideShare a Scribd company logo
1 of 22
Mentallog week 8

Giới thiệu về Observer pattern
và Mediator pattern
Nguyễn Đức Phú
Nội dung bài thuyết trình

Khái niệm về design pattern và phân loại design pattern
Ý tưởng cơ bản và những vấn đề liên quan của:
Observer pattern
Mediator pattern
So sánh 2 mẫu thiết kế trên, phân tích điểm mạnh, yếu.
Kết luận












Mentallog week 8

1.Giới thiệu về design pattern
2.Observer pattern
3.Mediator pattern
4.So sánh 2 pattern
5.Kết luận
Design pattern là gì?

Là những giải pháp thiết kế có thể được sử dụng lại
Giải quyết những vấn đề xảy ra thường xuyên
Không phải là “code“ mà là “ý tưởng“.
Giải quyết 1 loại vấn đề trong nhiều ngữ cảnh








Các loại Design Pattern

Design pattern category
Mentallog week 8

1.Giới thiệu về design pattern
2.Observer pattern
3.Mediator pattern
4.So sánh 2 pattern
5.Kết luận
Ví dụ về Observer pattern
Ví dụ về Observer pattern
Ví dụ của Observer pattern

Vấn đề của code trên là gì?
Khi thêm 1 thiết bị display mới, phải thay đổi code
Đối tượng WeatherData “phải“ nhìn thấy các đối tượng display
=> Không thể xây dựng được API.









Giải pháp:



Observer pattern
Ý tưởng của Observer Pattern



notify

Change
State

Subscriber 1
(Observer)

notify
Publisher
(Observable)

Update

Update
Subscriber 2

notify
Update
Attach/detach

Subcriber 4

Subscriber 3
Mô hình của Observer Pattern
Những vấn đề liên quan(1)

Có nhiều subject và nhiều observer
Đối tượng nào kích hoạt update?
Đảm bảo các trạng thái của subject ổn định trước khi thông báo








Những vấn đề liên quan (2)

Chỉ định những phần mà observer quan tâm
Đóng gói logic giao tiếp phức tạp
Những pattern liên quan: Factory, Template, Mediator
Ứng dụng thực tế: Model MVC, Event Management,...








Mentallog week 8

1.Giới thiệu về design pattern
2.Observer pattern
3.Mediator pattern
4.So sánh 2 pattern
5.Kết luận
Ví dụ về Mediator Pattern
Ví dụ về Mediator Pattern
Mô hình của Mediator pattern
Những vấn đề liên quan

Abstract mediator
Tương tác giữa mediator và colleagues
Sự phức tạp của đối tượng Mediator
Thường được sử dụng trong User interface và Chat application








Mentallog week 8

1.Giới thiệu về design pattern
2.Observer pattern
3.Mediator pattern
4.So sánh 2 pattern
5.Kết luận
Thảo luận

Observer pattern được dùng khi nào?
Mediator pattern được dùng khi nào?
Ưu, nhược điểm của observer pattern?
Ưu, nhược điểm của mediator pattern?
Cách khắc phục?










Mentallog week 8

1.Giới thiệu về design pattern
2.Observer pattern
3.Mediator pattern
4.So sánh 2 pattern
5.Kết luận
Kết luận

Observer pattern tập trung thiết kế cơ chế : quan sát (observer) và được quan sát (observable)
Mediator pattern tập trung thiết kế cơ chế điều hoà giao tiếp phức tạp giữa các đối tượng.
Điểm mạnh của 2 pattern này là đảm bảo sự độc lập giữa các lớp.
Điểm yếu của Observer pattern : quan hệ nhiều – nhiều.
Điểm yếu của Mediator pattern: Sự phức tạp của lớp Mediator.











More Related Content

Viewers also liked

Diapositivas mishelle quiroz
Diapositivas mishelle quirozDiapositivas mishelle quiroz
Diapositivas mishelle quirozmishibu_cristi
 
Composite pattern
Composite patternComposite pattern
Composite patternmentallog
 
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...City of Vancouver
 
3. transpo system overview
3. transpo system overview3. transpo system overview
3. transpo system overviewDeuce Condenuevo
 
Agile software development
Agile software developmentAgile software development
Agile software developmentmentallog
 
Builder pattern
Builder pattern Builder pattern
Builder pattern mentallog
 
Modelo para elaboração do portfolio individual unopar 2015
Modelo para elaboração do portfolio individual unopar 2015Modelo para elaboração do portfolio individual unopar 2015
Modelo para elaboração do portfolio individual unopar 2015daniela oliveira
 
Universal design of learning
Universal design of learningUniversal design of learning
Universal design of learningbeccastrauss
 
Little red ridinghood
Little red ridinghoodLittle red ridinghood
Little red ridinghoodSimone Becker
 
The dimension of meaning
The dimension of meaningThe dimension of meaning
The dimension of meaningIhsan Pratama
 
Introduction to natural language processing
Introduction to natural language processingIntroduction to natural language processing
Introduction to natural language processingMinh Pham
 

Viewers also liked (20)

Diapositivas mishelle quiroz
Diapositivas mishelle quirozDiapositivas mishelle quiroz
Diapositivas mishelle quiroz
 
Composite pattern
Composite patternComposite pattern
Composite pattern
 
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
Going Responsive: Making your Desktop Site Mobile (A City of Vancouver Case S...
 
Nosql
NosqlNosql
Nosql
 
3. transpo system overview
3. transpo system overview3. transpo system overview
3. transpo system overview
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Builder pattern
Builder pattern Builder pattern
Builder pattern
 
Modelo para elaboração do portfolio individual unopar 2015
Modelo para elaboração do portfolio individual unopar 2015Modelo para elaboração do portfolio individual unopar 2015
Modelo para elaboração do portfolio individual unopar 2015
 
Universal design of learning
Universal design of learningUniversal design of learning
Universal design of learning
 
Little red ridinghood
Little red ridinghoodLittle red ridinghood
Little red ridinghood
 
The dimension of meaning
The dimension of meaningThe dimension of meaning
The dimension of meaning
 
Thực tập GameLoft SAI1
Thực tập GameLoft SAI1Thực tập GameLoft SAI1
Thực tập GameLoft SAI1
 
Laravel 5 framework
Laravel 5 frameworkLaravel 5 framework
Laravel 5 framework
 
Introduction to natural language processing
Introduction to natural language processingIntroduction to natural language processing
Introduction to natural language processing
 
Term paper
Term paperTerm paper
Term paper
 
Thesis
ThesisThesis
Thesis
 
Research papers
Research papersResearch papers
Research papers
 
Terms and conditions
Terms and conditionsTerms and conditions
Terms and conditions
 
Terms and conditions
Terms and conditionsTerms and conditions
Terms and conditions
 
Thesis
ThesisThesis
Thesis
 

Similar to Mentallog12 10

Sinh vienit.net --bao-cao-design_patterns
Sinh vienit.net --bao-cao-design_patternsSinh vienit.net --bao-cao-design_patterns
Sinh vienit.net --bao-cao-design_patternshaduyen757
 
Quản lý dự án
Quản lý dự ánQuản lý dự án
Quản lý dự ánTran Tien
 
Singleton and Prototype Pattern
Singleton and Prototype PatternSingleton and Prototype Pattern
Singleton and Prototype PatternVuong Anh
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Umlhbgfd
 
phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thongvantinhkhuc
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinNguyen Patrick
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlMai Mit
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlAxnet Dung
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umldlmonline24h
 
Bài giảng công nghệ phần mềm PTIT
Bài giảng công nghệ phần mềm PTITBài giảng công nghệ phần mềm PTIT
Bài giảng công nghệ phần mềm PTITNguynMinh294
 
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...tPhan78
 
Lap du an co su tham gia
Lap du an co su tham giaLap du an co su tham gia
Lap du an co su tham giaforeman
 
Tìm hiểu phần mềm moodle trong công tác đào tạo trực tuyến
Tìm hiểu phần mềm moodle trong công tác đào tạo trực tuyếnTìm hiểu phần mềm moodle trong công tác đào tạo trực tuyến
Tìm hiểu phần mềm moodle trong công tác đào tạo trực tuyếnjackjohn45
 
Tìm hiểu và viết ứng dụng tra từ điển viết tắt của các thuật ngữ ngành IT trê...
Tìm hiểu và viết ứng dụng tra từ điển viết tắt của các thuật ngữ ngành IT trê...Tìm hiểu và viết ứng dụng tra từ điển viết tắt của các thuật ngữ ngành IT trê...
Tìm hiểu và viết ứng dụng tra từ điển viết tắt của các thuật ngữ ngành IT trê...Nguyễn Plus
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1laducqb
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGTrường Phạm
 
BAI GIANG QLDA_.Phan 1_2.pdf
BAI GIANG QLDA_.Phan 1_2.pdfBAI GIANG QLDA_.Phan 1_2.pdf
BAI GIANG QLDA_.Phan 1_2.pdfNhiUyn81
 

Similar to Mentallog12 10 (20)

Sinh vienit.net --bao-cao-design_patterns
Sinh vienit.net --bao-cao-design_patternsSinh vienit.net --bao-cao-design_patterns
Sinh vienit.net --bao-cao-design_patterns
 
Quản lý dự án
Quản lý dự ánQuản lý dự án
Quản lý dự án
 
Singleton and Prototype Pattern
Singleton and Prototype PatternSingleton and Prototype Pattern
Singleton and Prototype Pattern
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Uml
 
phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thong
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tin
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng uml
 
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượngLuận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
 
Quan ly du an
Quan ly du anQuan ly du an
Quan ly du an
 
Bài giảng công nghệ phần mềm PTIT
Bài giảng công nghệ phần mềm PTITBài giảng công nghệ phần mềm PTIT
Bài giảng công nghệ phần mềm PTIT
 
C1
C1C1
C1
 
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
 
Lap du an co su tham gia
Lap du an co su tham giaLap du an co su tham gia
Lap du an co su tham gia
 
Tìm hiểu phần mềm moodle trong công tác đào tạo trực tuyến
Tìm hiểu phần mềm moodle trong công tác đào tạo trực tuyếnTìm hiểu phần mềm moodle trong công tác đào tạo trực tuyến
Tìm hiểu phần mềm moodle trong công tác đào tạo trực tuyến
 
Tìm hiểu và viết ứng dụng tra từ điển viết tắt của các thuật ngữ ngành IT trê...
Tìm hiểu và viết ứng dụng tra từ điển viết tắt của các thuật ngữ ngành IT trê...Tìm hiểu và viết ứng dụng tra từ điển viết tắt của các thuật ngữ ngành IT trê...
Tìm hiểu và viết ứng dụng tra từ điển viết tắt của các thuật ngữ ngành IT trê...
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
 
BAI GIANG QLDA_.Phan 1_2.pdf
BAI GIANG QLDA_.Phan 1_2.pdfBAI GIANG QLDA_.Phan 1_2.pdf
BAI GIANG QLDA_.Phan 1_2.pdf
 

Mentallog12 10

  • 1. Mentallog week 8 Giới thiệu về Observer pattern và Mediator pattern Nguyễn Đức Phú
  • 2. Nội dung bài thuyết trình Khái niệm về design pattern và phân loại design pattern Ý tưởng cơ bản và những vấn đề liên quan của: Observer pattern Mediator pattern So sánh 2 mẫu thiết kế trên, phân tích điểm mạnh, yếu. Kết luận      
  • 3. Mentallog week 8 1.Giới thiệu về design pattern 2.Observer pattern 3.Mediator pattern 4.So sánh 2 pattern 5.Kết luận
  • 4. Design pattern là gì? Là những giải pháp thiết kế có thể được sử dụng lại Giải quyết những vấn đề xảy ra thường xuyên Không phải là “code“ mà là “ý tưởng“. Giải quyết 1 loại vấn đề trong nhiều ngữ cảnh    
  • 5. Các loại Design Pattern Design pattern category
  • 6. Mentallog week 8 1.Giới thiệu về design pattern 2.Observer pattern 3.Mediator pattern 4.So sánh 2 pattern 5.Kết luận
  • 7. Ví dụ về Observer pattern
  • 8. Ví dụ về Observer pattern
  • 9. Ví dụ của Observer pattern Vấn đề của code trên là gì? Khi thêm 1 thiết bị display mới, phải thay đổi code Đối tượng WeatherData “phải“ nhìn thấy các đối tượng display => Không thể xây dựng được API.     Giải pháp:  Observer pattern
  • 10. Ý tưởng của Observer Pattern  notify Change State Subscriber 1 (Observer) notify Publisher (Observable) Update Update Subscriber 2 notify Update Attach/detach Subcriber 4 Subscriber 3
  • 11. Mô hình của Observer Pattern
  • 12. Những vấn đề liên quan(1) Có nhiều subject và nhiều observer Đối tượng nào kích hoạt update? Đảm bảo các trạng thái của subject ổn định trước khi thông báo    
  • 13. Những vấn đề liên quan (2) Chỉ định những phần mà observer quan tâm Đóng gói logic giao tiếp phức tạp Những pattern liên quan: Factory, Template, Mediator Ứng dụng thực tế: Model MVC, Event Management,...    
  • 14. Mentallog week 8 1.Giới thiệu về design pattern 2.Observer pattern 3.Mediator pattern 4.So sánh 2 pattern 5.Kết luận
  • 15. Ví dụ về Mediator Pattern
  • 16. Ví dụ về Mediator Pattern
  • 17. Mô hình của Mediator pattern
  • 18. Những vấn đề liên quan Abstract mediator Tương tác giữa mediator và colleagues Sự phức tạp của đối tượng Mediator Thường được sử dụng trong User interface và Chat application    
  • 19. Mentallog week 8 1.Giới thiệu về design pattern 2.Observer pattern 3.Mediator pattern 4.So sánh 2 pattern 5.Kết luận
  • 20. Thảo luận Observer pattern được dùng khi nào? Mediator pattern được dùng khi nào? Ưu, nhược điểm của observer pattern? Ưu, nhược điểm của mediator pattern? Cách khắc phục?     
  • 21. Mentallog week 8 1.Giới thiệu về design pattern 2.Observer pattern 3.Mediator pattern 4.So sánh 2 pattern 5.Kết luận
  • 22. Kết luận Observer pattern tập trung thiết kế cơ chế : quan sát (observer) và được quan sát (observable) Mediator pattern tập trung thiết kế cơ chế điều hoà giao tiếp phức tạp giữa các đối tượng. Điểm mạnh của 2 pattern này là đảm bảo sự độc lập giữa các lớp. Điểm yếu của Observer pattern : quan hệ nhiều – nhiều. Điểm yếu của Mediator pattern: Sự phức tạp của lớp Mediator.     