Bài giảng Nhập môn công nghệ phần mềm: Chương 11 - TS. Nguyễn Văn Hiệp
Số trang: 22
Loại file: pdf
Dung lượng: 245.33 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Các mẫu thiết kế che dấu hành vi, thuật giải trong đối tượng" cung cấp cho người học các kiến thức: Tổng quát về nhóm mẫu “Behavioral patterns”, mẫu chain of responsibility, mẫu template method, mẫu strategy, mẫu state, mẫu command, mẫu observer.
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn công nghệ phần mềm: Chương 11 - TS. Nguyễn Văn HiệpChương 11Các mẫu thiết kế che dấu hành vi, thuật giảitrong ₫ối tượng (Behavioral Patterns)11.1 Tổng quát về nhóm mẫu “Behavioral Patterns”11.2 Mẫu Chain of Responsibility11.3 Mẫu Template Method11.4 Mẫu Strategy11.5 Mẫu State11.6 Mẫu Command11.7 Mẫu Observer11.8 Kết chươngKhoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 111.1 Tổng quát về nhóm mẫu “Behavioral Patterns”Trong ₫oạn code giải quyết vấn ₫ề của ứng dụng, khi cần phảichọn lựa 1 trong nhiều thuật giải/hành vi khác nhau thì ta thườngdùng phát biểu if/switch như sau :Switch (acode) {case ALG1 : //₫oạn code miêu tả thuật giải/hành vi 1case ALG2 : //₫oạn code miêu tả thuật giải/hành vi 2…case ALGn : //₫oạn code miêu tả thuật giải/hành vi n}Đoạn code trên có nhiều khuyết ₫iểm như : ohu5 thuộc hoàn toànvào số lượng thuật giải/hành vi, vào chi tiết cụ thể của từng thuậtgiải/hành vi, phải hiệu chỉnh khi số lượng/chi tiết của thuậtgiải/hành vi bị thay ₫ổi.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 211.1 Tổng quát về nhóm mẫu “Behavioral Patterns”Để khắc phục các nhược ₫iểm của cách lập trình cổ ₫iển trongslide trước, cách tốt nhất là dùng 1 trong các mẫu thuộc nhóm“Behavioral Patterns”.Nhiệm vụ của các mẫu thuộc nhóm “” là che dấu các ₫oạn codemiêu tả thuật giải/hành vi vào trong các ₫ối tượng, code của clientchỉ giữ tham khảo ₫ến ₫ối tượng và gởi thông ₫iệp nhờ ₫ối tượngthực hiện thuật giải/hành vi cụ thể khi cần thiết.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 311.2 Mẫu Chain of ResponsibilityMục tiêu :Mẫu dây chuyền trách nhiệm (Chain of Responsibility) giúptránh ₫ược việc gắn kết cứng giữa phần tử gởi request (Client)với phần tử nhận và xử lý request (Server) bằng cách cho phéphơn 1 ₫ối tượng có cơ hội xử lý request ₫ó. Các ₫ối tượng nhậnvà xử lý request sẽ ₫ược liên kết lại thành 1 dây chuyền, Clientsẽ tham khảo ₫ến ₫ầu dây chuyền này ₫ể gởi request khi cóyêu cầu.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 411.2 Mẫu Chain of ResponsibilityThí dụ về việc dùng mẫu Chain of Responsibility :Trong ứng dụng có trợ giúp theo ngữ cảnh thì user có thể xemthông tin trợ giúp của 1 phần tử giao diện nào ₫ó trực tiếp từ phần tử₫ó bằng cách ấn phải chuột vào nó. Lưu ý là các ₫ối tượng giaodiện thường ₫ược tổ chức theo dạng cây thứ bậc : 1 chương trình cónhiều cửa sổ giao diện, mỗi cửa sổ giao diện chứa nhiều ₫ối tượnggiao diện, mỗi ₫ối tượng giao diện có thể là group chứa nhiều ₫ốitượng giao diện con… Tóm lại số lượng các ₫ối tượng giao diện ₫ơn(không chứa ₫ối tượng khác nữa) của chương trình thường rất lớn,chi phí hiện thực tất cả sự trợ giúp cho tất cả các ₫ối tượng ₫ơn nàysẽ rất lớn, do ₫ó thường sẽ ₫ược hiện thực từ từ thông qua nhiềuversion mới ₫ạt ₫ược sự hoàn chỉnh. Tuy nhiên, dưới góc nhìn user,ngay cả version ₫ầu tiên, chương trình cũng phải ₫áp ứng tốt mọiyêu cầu trợ giúp theo ngữ cảnh trên mọi ₫ối tượng giao diện.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 511.2 Mẫu Chain of ResponsibilityCách tốt nhất ₫ể giảiquyết vần ₫ề trên làdùng mẫu Chain ofResponsibility với lược₫ồ class như sau :Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 611.2 Mẫu Chain of ResponsibilityLược ₫ồ ₫ối tượng liên quan ₫ến 1 button nào ₫ó có dạng như sau :Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 711.2 Mẫu Chain of ResponsibilityTheo lược ₫ồ ₫ối tượng của Button như trên thì khi user ấn phải chuộtvào button ₫ể xem trợ giúp về button ₫ó thì : Hoặc là hàm xử lý HandleHelp() của chính button ₫ó chạy (nếu cóhiện thực) ₫ể hiển thị nội dung trợ giúp chính xác về button ₫ó. Hoặc là hàm xử lý HandleHelp() của ₫ối tượng chứa button sẽ chạy(GroupBox - nếu có hiện thực) ₫ể hiển thị nội dung trợ giúp về phầntử GroupBox ₫ó, nội dung này thường chứa thông tin trợ giúp củabutton. Tương tự, nếu GroupBox không hiện thực hàm xử lý HandleHelp()thì hàm HandleHelp() của Form sẽ chạy, còn nếu Form cũng khônghiện thực hàm xử lý HandleHel ...
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn công nghệ phần mềm: Chương 11 - TS. Nguyễn Văn HiệpChương 11Các mẫu thiết kế che dấu hành vi, thuật giảitrong ₫ối tượng (Behavioral Patterns)11.1 Tổng quát về nhóm mẫu “Behavioral Patterns”11.2 Mẫu Chain of Responsibility11.3 Mẫu Template Method11.4 Mẫu Strategy11.5 Mẫu State11.6 Mẫu Command11.7 Mẫu Observer11.8 Kết chươngKhoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 111.1 Tổng quát về nhóm mẫu “Behavioral Patterns”Trong ₫oạn code giải quyết vấn ₫ề của ứng dụng, khi cần phảichọn lựa 1 trong nhiều thuật giải/hành vi khác nhau thì ta thườngdùng phát biểu if/switch như sau :Switch (acode) {case ALG1 : //₫oạn code miêu tả thuật giải/hành vi 1case ALG2 : //₫oạn code miêu tả thuật giải/hành vi 2…case ALGn : //₫oạn code miêu tả thuật giải/hành vi n}Đoạn code trên có nhiều khuyết ₫iểm như : ohu5 thuộc hoàn toànvào số lượng thuật giải/hành vi, vào chi tiết cụ thể của từng thuậtgiải/hành vi, phải hiệu chỉnh khi số lượng/chi tiết của thuậtgiải/hành vi bị thay ₫ổi.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 211.1 Tổng quát về nhóm mẫu “Behavioral Patterns”Để khắc phục các nhược ₫iểm của cách lập trình cổ ₫iển trongslide trước, cách tốt nhất là dùng 1 trong các mẫu thuộc nhóm“Behavioral Patterns”.Nhiệm vụ của các mẫu thuộc nhóm “” là che dấu các ₫oạn codemiêu tả thuật giải/hành vi vào trong các ₫ối tượng, code của clientchỉ giữ tham khảo ₫ến ₫ối tượng và gởi thông ₫iệp nhờ ₫ối tượngthực hiện thuật giải/hành vi cụ thể khi cần thiết.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 311.2 Mẫu Chain of ResponsibilityMục tiêu :Mẫu dây chuyền trách nhiệm (Chain of Responsibility) giúptránh ₫ược việc gắn kết cứng giữa phần tử gởi request (Client)với phần tử nhận và xử lý request (Server) bằng cách cho phéphơn 1 ₫ối tượng có cơ hội xử lý request ₫ó. Các ₫ối tượng nhậnvà xử lý request sẽ ₫ược liên kết lại thành 1 dây chuyền, Clientsẽ tham khảo ₫ến ₫ầu dây chuyền này ₫ể gởi request khi cóyêu cầu.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 411.2 Mẫu Chain of ResponsibilityThí dụ về việc dùng mẫu Chain of Responsibility :Trong ứng dụng có trợ giúp theo ngữ cảnh thì user có thể xemthông tin trợ giúp của 1 phần tử giao diện nào ₫ó trực tiếp từ phần tử₫ó bằng cách ấn phải chuột vào nó. Lưu ý là các ₫ối tượng giaodiện thường ₫ược tổ chức theo dạng cây thứ bậc : 1 chương trình cónhiều cửa sổ giao diện, mỗi cửa sổ giao diện chứa nhiều ₫ối tượnggiao diện, mỗi ₫ối tượng giao diện có thể là group chứa nhiều ₫ốitượng giao diện con… Tóm lại số lượng các ₫ối tượng giao diện ₫ơn(không chứa ₫ối tượng khác nữa) của chương trình thường rất lớn,chi phí hiện thực tất cả sự trợ giúp cho tất cả các ₫ối tượng ₫ơn nàysẽ rất lớn, do ₫ó thường sẽ ₫ược hiện thực từ từ thông qua nhiềuversion mới ₫ạt ₫ược sự hoàn chỉnh. Tuy nhiên, dưới góc nhìn user,ngay cả version ₫ầu tiên, chương trình cũng phải ₫áp ứng tốt mọiyêu cầu trợ giúp theo ngữ cảnh trên mọi ₫ối tượng giao diện.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 511.2 Mẫu Chain of ResponsibilityCách tốt nhất ₫ể giảiquyết vần ₫ề trên làdùng mẫu Chain ofResponsibility với lược₫ồ class như sau :Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 611.2 Mẫu Chain of ResponsibilityLược ₫ồ ₫ối tượng liên quan ₫ến 1 button nào ₫ó có dạng như sau :Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Nhập môn Công nghệ phần mềmChương 11 : Các mẫu thiết kế che dấu hành vi, thuật giải trong ₫ối tượngSlide 711.2 Mẫu Chain of ResponsibilityTheo lược ₫ồ ₫ối tượng của Button như trên thì khi user ấn phải chuộtvào button ₫ể xem trợ giúp về button ₫ó thì : Hoặc là hàm xử lý HandleHelp() của chính button ₫ó chạy (nếu cóhiện thực) ₫ể hiển thị nội dung trợ giúp chính xác về button ₫ó. Hoặc là hàm xử lý HandleHelp() của ₫ối tượng chứa button sẽ chạy(GroupBox - nếu có hiện thực) ₫ể hiển thị nội dung trợ giúp về phầntử GroupBox ₫ó, nội dung này thường chứa thông tin trợ giúp củabutton. Tương tự, nếu GroupBox không hiện thực hàm xử lý HandleHelp()thì hàm HandleHelp() của Form sẽ chạy, còn nếu Form cũng khônghiện thực hàm xử lý HandleHel ...
Tìm kiếm theo từ khóa liên quan:
Nhập môn công nghệ phần mềm Công nghệ phần mềm Bài giảng Nhập môn công nghệ phần mềm Behavioral patterns Thiết kế che dấu hành viGợi ý tài liệu liên quan:
-
62 trang 402 3 0
-
Giáo trình Công nghệ phần mềm nâng cao: Phần 2
202 trang 229 0 0 -
Giáo trình Công nghệ phần mềm nâng cao: Phần 1
151 trang 198 0 0 -
Báo cáo chuyên đề Công nghệ phần mềm: Pattern searching
68 trang 188 0 0 -
Lecture Introduction to software engineering - Week 3: Project management
68 trang 184 0 0 -
Xây dựng mô hình và công cụ hỗ trợ sinh tác tử giao diện
13 trang 179 0 0 -
6 trang 173 0 0
-
Bài giảng Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
36 trang 154 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
Cuộc chiến Phân kỳ - Tích hợp nhiều tranh cãi bậc nhất trong giới marketing
3 trang 148 0 0