1. Trang chủ
  2. » Công Nghệ Thông Tin

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

8 53 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 288,78 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.

Trang 1

GV

GV NguyễnNguyễn Minh Minh HuyHuy

Mẫu

Trang 2

 Bài Bài toán toán::

 XâyXây dựngdựng thuậtthuật toántoán khungkhung

 ThiếtThiết lậplập event event trongtrong lậplập trìnhtrình

 CàiCài đặtđặt hook hook sựsự kiệnkiện

 Mục Mục tiêu tiêu::

 Mục Mục tiêu tiêu::

 MộtMột quyquy trìnhtrình khungkhung cốcố địnhđịnh

 Có thểCó thể cảicải tiếntiến, , mởmở rộngrộng cáccác bướcbước trongtrong quyquy trìnhtrình



 CảiCải biênbiên mộtmột phầnphần phươngphương thứcthức

Trang 3

 Cài Cài đặt đặt quy quy trình trình khung khung::

 DùngDùng phươngphương thứcthức khôngkhông ảoảo (non(non virtual).virtual)

 Cải Cải tiến tiến, , mở mở rộng rộng các các bước bước trong trong quy quy trình trình::

 TáchTách cáccác bướcbước cầncần sửasửa thànhthành phươngphương thứcthức độcđộc lậplập

Phương Phương thứcthức khungkhung gọigọi cáccác phươngphương thứcthức nàynày

 PhươngPhương thứcthức khungkhung gọigọi cáccác phươngphương thứcthức nàynày

 CácCác lớplớp kếkế thừathừa cảicải biênbiên lạilại

Trang 4

class

class Form Form

{{

public:

void load() {{

onBeforeLoad onBeforeLoad(); ();

class

class WelcomeForm WelcomeForm

{{

public:

void void onBeforeLoad onBeforeLoad() () {{

// Load // Load ảnh ảnh giới giới thiệu thiệuS S }}

//

// Cài Cài đặt đặt load formS load formS onAfterLoad

onAfterLoad(); ();

}}

virtual

virtual void void onBeforeLoad onBeforeLoad() { } () { } virtual void

virtual void onAfterLoad onAfterLoad() { }; () { };

};

}}

}}

class

class LoginForm LoginForm

{{

public:

void

void onAfterLoad onAfterLoad() () {{

// Focus ô // Focus ô nhập nhập usernameS usernameS }}

}}

Trang 5

 Áp Áp đặt đặt quy quy trình trình khung khung với với người người dùng dùng::

 ChỉChỉ cócó thểthể cảicải biênbiên cáccác bướcbước con.con

 TuânTuân thủthủ quyquy trìnhtrình thựcthực hiệnhiện cáccác bướcbước



 Dùng Dùng protectedS protectedS

class

class Form Form {{ void void main() main()

class

class Form Form {{

public:

void void load() { load() {

onBeforeLoad

onBeforeLoad(); ();

//

// Cài Cài đặt đặt load formS load formS onAfterLoad

onAfterLoad(); ();

}}

protected:

virtual

virtual void void onBeforeLoad onBeforeLoad() { } () { } virtual void

virtual void onAfterLoad onAfterLoad() { }; () { };

void

void main() main()

{{

Form f = new Form f = new WelcomeForm WelcomeForm(); ();

f.onAfterLoad f.onAfterLoad(); (); // // Lỗi Lỗi f.onBeforeLoad

f.onBeforeLoad(); (); // // Lỗi Lỗi

f.load f.load(); ();

}}

Trang 6

 Áp Áp dụng dụng giảm giảm trùng trùng lặp lặp mã mã nguồn nguồn::

 PhươngPhương thứcthức cảicải biênbiên ở ở cáccác lớplớp kếkế thừathừa cócó phầnphần chungchung

class

class Animal Animal

{{

public:

virtual void talk() = 0;

class

class Cat Cat {{

public:

void talk()

void talk() {{

prepareSound prepareSound(); ();

virtual void talk() = 0;

};

prepareSound prepareSound(); ();

//

// Cài Cài đặt đặt kêu kêu meo meo meo meoS S }}

};

class

class Dog Dog {{

public:

void talk()

void talk() {{

prepareSound prepareSound(); ();

//

// Cài Cài đặt đặt kêu kêu gâu gâu gâu gâuS S }}

};

Trang 7

 Áp Áp dụng dụng giảm giảm trùng trùng lặp lặp mã mã nguồn nguồn::

 TáchTách phầnphần chungchung thànhthành Template Method.Template Method

 ChuyểnChuyển phầnphần riêngriêng thànhthành Primitive Operation.Primitive Operation

class

class Animal Animal

{{

class

class Cat Cat {{

protected:

{{

public:

void talk() {{

prepareSound prepareSound(); ();

doTalk doTalk(); ();

}}

protected:

virtual

virtual doTalk doTalk() = 0; () = 0;

};

void void doTalk doTalk() () {{

//

// Cài Cài đặt đặt kêu kêu meo meo meo meoS S }}

};

class

class Dog Dog {{

protected:

void

void doTalk doTalk() () {{

//

// Cài Cài đặt đặt kêu kêu gâu gâu gâu gâuS S }}

};

Trang 8

 Áp Áp dụng dụng tránh tránh quên quên gọi gọi phương phương thức thức cha: cha:

 PhươngPhương thứcthức cha cha cungcung cấpcấp càicài đặtđặt mặcmặc địnhđịnh

 PhươngPhương thứcthức con con cảicải biênbiên vàvà gọigọi lạilại cha.cha

class

class Button Button {{

public:

class

class Button Button {{

public:

public:

virtual void

virtual void onDraw onDraw() { () {

//

// Cài Cài đặt đặt mặc mặc định địnhS S

}}

};

class

class CustomButton CustomButton {{

public:

void void onDraw onDraw() () {{

//

// Cài Cài đặt đặt vẽ vẽS S

Button::

Button::onDraw onDraw(); ();

}}

};

virtual void virtual void onDraw onDraw() { () {

hookOperator

hookOperator(); ();

//

// Cài Cài đặt đặt mặc mặc định địnhS S

}}

};

class

class CustomButton CustomButton {{

protected:

void void hookOperation hookOperation() () {{

//

// Cài Cài đặt đặt vẽ vẽS S }}

};

Ngày đăng: 11/01/2020, 20:15

🧩 Sản phẩm bạn có thể quan tâm