Field C1 o1; C1_o1 db dup (sizeof(C1))

Một phần của tài liệu PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML ppt (Trang 29 - 33)

• truy xu ́t 1 thu c t nh dư li u trơ thanh vi c truy xu ́t nhơ

dung cach ₫ịnh ₫ịa chỉ chỉ s ́:

- o1.i = 5; mov bx, C1_o1

Bö mön Cöng nghï phền mï̀m Khoa CNTT

ĐH Bach Khoa Tp.HCM

Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML

Slide 59 class C1 : C0 { int i ; double d; ... public :

int proc4(int i, double k);void proc5 (double d); void proc5 (double d); ... }; Tao bang ₫ịa ch cac method 0 "proc1" C0_proc1 1 "proc2" C1_proc2 2 "proc3" C0_proc3 3 "proc4" C1_proc4 4 "proc5" C1_proc5 5 .... ... fname faddr pvftbl

Chương 3: Nguy n tăc dịch OOP

Tao bang ₫ịa ch cac method (tt)

• tao bang ₫ịa chỉ g ̀m C1METHCNT ph ̀n tư(C1METHCNT la

s ́method cua class hi n hanh, k ̉ ca cac method thưa k ́.• m ̃i ph ̀n tư₫ươc nh n dang qua chỉ s ́ va g ̀m 2 th ng tin • m ̃i ph ̀n tư₫ươc nh n dang qua chỉ s ́ va g ̀m 2 th ng tin

ch nh : t n gơi nhơ cua method va₫ịa chỉ cua method.• copy bang ₫ịa chỉ cua class cha₫a co. • copy bang ₫ịa chỉ cua class cha₫a co.

• hi u chỉnh lai cac ₫ịa chỉ cua cac method bịoverride.

Bö mön Cöng nghï phền mï̀m Khoa CNTT

ĐH Bach Khoa Tp.HCM

Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML

Slide 61

Chương 3: Nguy n tăc dịch OOP int C1::proc1(int i,double k) {

C2 o2;C2 *p2; C2 *p2; C1::i = i; d = k; proc5(d); o2.proc2(i,d); p2 = New(C2); p2->proc2(i,d); .... }; Dch 1 method

int C1_proc1(C1* p, int i, double d) {C2 o2; C2 *p2; C2 o2; C2 *p2; // truy xu ́t thu c t nh p->C1_i = i; p->C1_d = d; // goi ham C1_proc5(p,d); C2_proc2(&o2, i,d);

// gơi th ng bao : ki ̉m tra, load,// anh xa bang ₫ịa chỉmethod // anh xa bang ₫ịa chỉmethod for (i = 0; i <C1METHCNT; i ++) if (strcmp ("proc2", p2-> pvftbl[i].fname)==0) break; (*pvftbl[i].faddr)(p2,i,d); }; 1 2 3 Dch 1 method (tt)

• t n method₫ươc chuy ̉n tư dang 'tương ₫ ́i' sang 'tuy t ₫ ́i'(n ́i k ́t t n class vao). (n ́i k ́t t n class vao).

• th m tham s ́₫ ̀u ti n cho ham sinh ra : mi u ta tham khao

₫ ́n ₫ ́i tương ma ham se truy xu ́t cac thu c t nh dư li u.• t n thu c t nh ₫ươc chuy ̉n tư dang 'tương ₫ ́i' sang 'tuy t ₫ ́i' • t n thu c t nh ₫ươc chuy ̉n tư dang 'tương ₫ ́i' sang 'tuy t ₫ ́i'

(n ́i k ́t t n class vao).

• goi ham internal →goi ham nhưng th m tham s ́₫ ̀u ti n.• gơi th ng bao 3 bươc : • gơi th ng bao 3 bươc :

— ki ̉m tra, t m, load va anh xa bang ₫ịa chỉ cac method cua

₫ ́i tương.

Bö mön Cöng nghï phền mï̀m Khoa CNTT

ĐH Bach Khoa Tp.HCM

Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML

Slide 63

Chương 3: Nguy n tăc dịch OOP

́i ưu hoa code tao ra

• co2 v ́n ₫ ̀ lơn trong qua tr nh dịch 1 class sang ng n ngư c ̉₫i ̉n. ₫i ̉n.

— bang ₫ịa chỉmethod chi ́m nhi ̀u ch ̃.

— t ́n thơi gian ₫ ̉ phuc vu l nh gơi th ng bao : ki ̉m tra, loadva anh xa bang ₫ịa chỉ, t m chỉ s ́method c ̀n goi va goi va anh xa bang ₫ịa chỉ, t m chỉ s ́method c ̀n goi va goi gian ti ́p qua₫ịa chỉ trong bang.

• 1 s ́ chương tr nh dịch t m cach t ́i ưu hoa cac v ́n ₫ ̀ nay.• slide sau la cac t ́i ưu hoa cua chương tr nh dịch C++ va cai gia • slide sau la cac t ́i ưu hoa cua chương tr nh dịch C++ va cai gia

phai tra.

́i ưu hoa code tao ra (tt)

• trong C++, t ́t ca₫ ́i tương ₫ ̀u tam thơi va găn chăt vao ưng dung→bang ₫ịa chỉ cac method cua cac ₫ ́i tương lu n năm dung→bang ₫ịa chỉ cac method cua cac ₫ ́i tương lu n năm săn trong kh ng gian cua ưng dung.

• m ̃i l ̀n tao ₫ ́i tương, bi ́n pvftbl trong ₫ ́i tương ₫ươc gan ngay ₫ịa chỉ₫ ̀u bang method →kh ng c ̀n lam bươc 1 cho ngay ₫ịa chỉ₫ ̀u bang method →kh ng c ̀n lam bươc 1 cho m ̃i l ̀n gơi th ng bao.

• C++ chỉ dung m ́i quan h con/cha trong ki ̉m tra ki ̉u→c ng vi c 2₫ươc lam tai thơi ₫i ̉m dịch thay v tai thơi ₫i ̉m gơi th ng vi c 2₫ươc lam tai thơi ₫i ̉m dịch thay v tai thơi ₫i ̉m gơi th ng bao trong luc chay.

• c t t n gơi nhơmethod kh ng c ̀n phai lưu trư trong bang ₫ịa chỉ cac method. chỉ cac method.

Bö mön Cöng nghï phền mï̀m Khoa CNTT

ĐH Bach Khoa Tp.HCM

Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML

Slide 65

Chương 3: Nguy n tăc dịch OOP

́i ưu hoa code tao ra (tt)

• cai gia phai tra cua vi c t ́i ưu hoa trong C++ :

— ngươi l p tr nh phai tư quy ́t ₫ịnh method nao c ̀n xư ly

theo cơ ch ́₫a h nh, ham nao kh ng ? N ́u sư quy ́t ₫ịnh nay sai th se g y l ̃i khi chay, ma la ngươi th kho long nay sai th se g y l ̃i khi chay, ma la ngươi th kho long quy ́t ₫ịnh ch nh xac.

— t nh ₫a h nh chỉ₫ung giưa cac ₫ ́i tương co m ́i quan h 

con/cha,ơ₫o thư tư cac ₫ịa chỉmethod cua moi class controng bang ₫ịa chỉ lu n gi ́ng thư tư cac method tương ưng trong bang ₫ịa chỉ lu n gi ́ng thư tư cac method tương ưng cua class cha, tuy nhi n giưa 2 class b ́t ky th kh ng th ̉ ₫am bao→ki ̉m tra ki ̉u trong C++ kh ng th ̉ n ng c ́p l n băng cach dung m ́i quan h "conformity".

Trương Đai Hoc Bach Khoa Tp. HCM Khoa Cöng nghï Thöng tin

Chương 4

QUI TRÒNH HƠP NHÊT & UML

Một phần của tài liệu PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML ppt (Trang 29 - 33)

Tải bản đầy đủ (PDF)

(175 trang)