intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu template method - Nguyễn Minh Huy

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:8

44
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu template method" cung cấp cho người học các kiến thức: Ngữ cảnh mẫu template method, hướng tiếp cận mẫu template method, cài đặt, các vấn đề xung quanh. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Mẫu thiết kế hướng đối tượng và ứng dụng: Mẫu template method - Nguyễn Minh Huy

  1. Mẫu Template Method GV. Nguyễn Minh Huy Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 1
  2. Mẫu Template Method  Ngữ cảnh cảnh::  Bài toán toán::  Xây dựng thuật toán khung khung..  Thiết lập event trong lập trình trình..  Cài đặt hook sự kiện kiện..  Mục tiêu tiêu::  Một quy trình khung cố định định..  Có thể cải tiến tiến,, mở rộng các bước trong quy trình trình..  Cải biên một phần phương thức thức.. Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 2
  3. Mẫu Template Method  Hướng tiếp cận cận::  Cài đặt quy trình khung: khung:  Dùng phương thức không ảo (non (non--virtual).  Cải tiến tiến,, mở rộng các bước trong quy trình trình::  Tách các bước cần sửa thành phương thức độc lập. lập.  Phương thức khung gọi các phương thức này này..  Các lớp kế thừa cải biên lại. lại. Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 3
  4. Mẫu Template Method  Cài đặt đặt:: class Form class WelcomeForm { { public: public: void load() void onBeforeLoad onBeforeLoad() () { { onBeforeLoad(); onBeforeLoad (); // Load ảnh giới thiệu thiệuSS // Cài đặt load formS } onAfterLoad(); onAfterLoad (); } } class LoginForm virtual void onBeforeLoad onBeforeLoad() () { } { virtual void onAfterLoad onAfterLoad() () { }; public: }; void onAfterLoad onAfterLoad() () { // Focus ô nhập usernameS } } Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 4
  5. Mẫu Template Method  Các vấn đề xung quanh quanh::  Áp đặt quy trình khung với người dùng dùng::  Chỉ có thể cải biên các bước con.  Tuân thủ quy trình thực hiện các bước bước..  Dùng protectedS class Form { void main() public: { void load() { Form f = new WelcomeForm(); WelcomeForm(); onBeforeLoad(); onBeforeLoad (); // Cài đặt load formS f.onAfterLoad(); f.onAfterLoad(); // Lỗi onAfterLoad(); onAfterLoad (); f.onBeforeLoad(); f.onBeforeLoad (); // Lỗi } protected: f.load(); f.load (); virtual void onBeforeLoad onBeforeLoad() () { } } virtual void onAfterLoad onAfterLoad() () { }; }; Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 5
  6. Mẫu Template Method  Các vấn đề xung quanh quanh::  Áp dụng giảm trùng lặp mã nguồn nguồn::  Phương thức cải biên ở các lớp kế thừa có phần chung chung.. class Animal class Cat { { public: public: void talk() { virtual void talk() = 0; prepareSound(); prepareSound (); }; // Cài đặt kêu meo meo meoS S } }; class Dog { public: void talk() { prepareSound(); prepareSound (); // Cài đặt kêu gâu gâu gâuS S } }; Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 6
  7. Mẫu Template Method  Các vấn đề xung quanh quanh::  Áp dụng giảm trùng lặp mã nguồn nguồn::  Tách phần chung thành Template Method.  Chuyển phần riêng thành Primitive Operation. class Animal class Cat { { protected: public: void doTalk doTalk() () { void talk() // Cài đặt kêu meo meo meoSS { } prepareSound(); prepareSound (); }; doTalk(); doTalk (); class Dog { } protected: protected: void doTalk doTalk() () { virtual doTalk doTalk() () = 0; // Cài đặt kêu gâu gâu gâuSS }; } }; Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 7
  8. Mẫu Template Method  Các vấn đề xung quanh quanh::  Áp dụng tránh quên gọi phương thức cha:  Phương thức cha cung cấp cài đặt mặc định định..  Phương thức con cải biên và gọi lại cha. class Button { class Button { public: public: virtual void onDraw() onDraw() { virtual void onDraw() onDraw() { // Cài đặt mặc định địnhSS hookOperator(); hookOperator (); } // Cài đặt mặc định địnhS S }; } class CustomButton { }; public: class CustomButton { void onDraw() onDraw() { protected: // Cài đặt vẽS vẽS void hookOperation hookOperation()() { Button::onDraw Button:: onDraw(); (); // Cài đặt vẽS vẽS } } }; }; Mẫu thiết kế hướng đối tượng & ứng dụng - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt 8
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2