Đăng ký Đăng nhập

Tài liệu Chuong 6.gioi thieu ve doi tuong

.PDF
13
129
117

Mô tả:

6 giíi thiÖu vÒ ®èi tƯîng (INTRODUCTION TO OBJECTS) Néi dung: Giíi thiÖu vÒ m«-®un §é g¾n kÕt Nèi kÕt Bao gãi d÷ liÖu KiÓu d÷ liÖu trõu tưîng Th«ng tin Èn §èi tưîng Huúnh Xu©n HiÖp - CNPM 67 Giíi thiÖu vÒ m«-®un (what is a module ?) §Þnh nghÜa cña [Stevens, Myers, vµ Constantine, 1974] vÒ m«-®un: tËp hîp cña mét hay nhiÒu c©u lÖnh kÕ tiÕp nhau ®ưîc ®Æt tªn, c¸c phÇn kh¸c trong chư¬ng tr×nh cã thÓ kÝch ho¹t víi tªn ®ưîc ®Æt, cã tËp hîp c¸c tªn biÕn riªng biÖt. M«-®un lµ mét khèi ®¬n c¸c m· lÖnh cã thÓ kÝch ho¹t gièng như thñ tôc, hµm hay phư¬ng thøc Chip 1 Registers ALU Shifter H×nh 6.1 ThiÕt kÕ cña m¸y vi tÝnh Huúnh Xu©n HiÖp - CNPM Chip 2 Registers ALU Shifter Chip 3 H×nh 6.2 M¸y vi tÝnh H×nh 6.1 chÕ t¹o víi 3 chip 68 §é g¾n kÕt (cohesion) Lµ møc ®é tư¬ng t¸c bªn trong mét m«-®un Myers ®Þnh nghÜa 7 thÓ lo¹i (møc) g¾n kÕt [Myers, 1978b] 7. 5. 4. 3. 2. 1. G¾n kÕt chøc n¨ng G¾n kÕt th«ng tin G¾n kÕt truyÒn th«ng G¾n kÕt thñ tôc G¾n kÕt thêi gian G¾n kÕt luËn lý G¾n kÕt trïng khíp H×nh 6.3 C¸c møc g¾n kÕt Tèt XÊu G¾n kÕt trïng khíp (coincidental cohesion): m«-®un thùc hiÖn nhiÒu hµnh ®éng kh«ng liªn quan ®Õn nhau VD: m«-®un víi tªn như in dßng tiÕp theo, ®¶o ngưîc chuçi ký tù tham sè thø hai, thªm 7 cho tham sè thø 5, ®æi tham sè thø tư thµnh sè thùc Huúnh Xu©n HiÖp - CNPM 69 G¾n kÕt luËn lý (logical cohesion): m«-®un thùc hiÖn chuçi c¸c hµnh ®éng cã liªn quan víi nhau, mét trong sè ®ã ®ưîc chän bëi m«-®un gäi ®Õn VD: m«-®un thùc hiÖn viÖc thªm, xãa, cËp nhËt c¸c mÈu tin trªn tËp tin G¾n kÕt thêi gian (temporal cohesion): m«-®un thùc hiÖn chuçi c¸c hµnh ®éng liªn quan víi nhau theo thêi gian VD: m«-®un víi tªn như më tËp tin cò, t¹o tËp tin míi, më tËp tin giao dÞch, in tËp tin giao dÞch, khëi t¹o b¶ng kinh doanh khu vùc, ®äc mÈu tin giao dÞch ®Çu tiªn,®äc mÈu tin ®Çu tiªn trong tËp tin cò G¾n kÕt thñ tôc (procedural cohesion): m«-®un thùc hiÖn chuçi c¸c hµnh ®éng liªn quan víi nhau theo c¸c bưíc ®óng tr×nh tù ph¸t triÓn s¶n phÈm VD: m«-®un víi tªn như ®äc sè hiÖu bé phËn tõ tËp tin c¬ së d÷ liÖu vµ cËp nhËt, söa ch÷a mÈu tin trªn tËp tin b¶o tr× G¾n kÕt truyÒn th«ng (communcational cohesion): m«-®un thùc hiÖn chuçi c¸c hµnh ®éng liªn quan víi nhau theo c¸c bưíc ®óng tr×nh tù ph¸t triÓn s¶n phÈm vµ nÕu như mäi hµnh ®éng ®Òu ®ưîc thùc hiÖn trªn d÷ liÖu gièng nhau VD: m«-®un víi tªn như cËp nhËt mÈu tin trong c¬ së d÷ liÖu vµ ghi vµo sæ hoÆc tÝnh to¸n quü ®¹o vµ göi ra m¸y in Huúnh Xu©n HiÖp - CNPM 70 G¾n kÕt th«ng tin (information cohesion): m«-®un thùc hiÖn mét sè lưîng c¸c hµnh ®éng, mçi hµnh ®éng cã ®Çu vµo riªng, m· lÖnh ®éc lËp vµ thùc hiÖn trªn d÷ liÖu gièng nhau VD: §Þnh nghÜa b¶ng kinh doanh khu vùc Vµo Vµo Vµo Khëi t¹o b¶ng kinh doanh khu vùc .......... CËp nhËt b¶ng kinh doanh khu vùc .......... In b¶ng kinh doanh khu vùc .......... Tho¸t Tho¸t Tho¸t H×nh 6.4 M«-®un g¾n kÕt vÒ th«ng tin Chøc n¨ng: m«-®un thùc hiÖn mét hµnh ®éng hoÆc nhËn lÊy mét kÕt qu¶ VD: m«-®un víi tªn như lÊy nhiÖt ®é lß; tÝnh to¸n quü ®¹o cña ®iÖn tö; ghi lªn ®Üa mÒm; tÝnh to¸n tiÒn hoa hång Huúnh Xu©n HiÖp - CNPM 71  VÝ dô vÒ c¸c d¹ng g¾n kÕt chøc n¨ng tÝnh to¸n nhiÖt ®é trung b×nh hµng ngµy t¹i nhiÒu ®Þa ®iÓm kh¸c nhau trïng khíp khëi t¹o tæng sè vµ më c¸c tËp tin chøc n¨ng t¹o mÈu tin nhiÖt ®é míi chøc n¨ng lưu tr÷ mÈu tin nhiÖt ®é chøc n¨ng ®äc thêi gian vµ nhiÖt ®é t¹i ®Þa ®iÓm chøc n¨ng lưu tr÷ mÈu tin cho tõng ®Þa ®iÓm trïng khíp ®ãng c¸c tËp tin vµ in nhiÖt ®é trung b×nh luËn lý chän läc thêi gian hoÆc c¸c trưêng nhiÖt ®é H×nh 6.5 BiÓu diÔn d¹ng g¾n kÕt cña tõng m«-®un Huúnh Xu©n HiÖp - CNPM 72 Nèi kÕt (coupling) Lµ møc ®é tư¬ng t¸c gi÷a hai m«-®un, rÊt quan träng trong ®¸nh gi¸ C¸c møc ®é nèi kÕt 5. 4. 3. 2. 1. Nèi kÕt d÷ liÖu Nèi kÕt nh·n hiÖu Nèi kÕt ®iÒu khiÓn Nèi kÕt chung Nèi kÕt néi dung H×nh 6.6 C¸c møc ®é nèi kÕt Tèt XÊu Nèi kÕt néi dung(content coupling): hai m«-®un ®ưîc gäi lµ nèi kÕt vÒ néi dung nÕu như chóng cã thÓ tham kh¶o rùc tiÕp néi dung cña nhau VD: m«-®un p tham kh¶o d÷ liÖu côc bé cña m«-®un q, hoÆc m«-®un p thay ®æi mét c©u lÖnh cña m«-®un q. Huúnh Xu©n HiÖp - CNPM 73 Nèi kÕt chung (common coupling): hai m«-®un ®ưîc gäi lµ nèi kÕt chung nÕu c¶ hai truy xuÊt ®Õn c¸c d÷ liÖu toµn côc gièng nhau VD: ma mb biÕn toµn côc H×nh 6.7 Nèi kÕt chung Nèi kÕt ®iÒu khiÓn (control coupling): hai m«-®un ®ưîc gäi lµ nèi kÕt ®iÒu khiÓn nÕu m«-®un nµy cã thÓ göi phµn tö ®iÒu khiÓn ®Õn m«-®un kia (cã thÓ ®iÒu khiÓn lÉn nhau) Nèi kÕt nh·n hiÖu (stamp coupling): hai m«-®un ®ưîc gäi lµ nèi kÕt nh·n hiÖu nÕu như tham sè ®ưîc göi ®i lµ mét cÊu tróc d÷ liÖu vµ m«-®un ®ưîc gäi chØ thao t¸c trªn mét vµi thµnh phÇn cña cÊu tróc d÷ liÖu ®ã Nèi kÕt d÷ liÖu (data coupling): hai m«-®un ®ưîc gäi lµ nèi kÕt d÷ liÖu nÕu như tÊt c¶ c¸c tham sè ®Òu lµ c¸c môc d÷ liÖu thuÇn nhÊt (homogeneous data items) Huúnh Xu©n HiÖp - CNPM 74 VÝ dô vÒ nèi kÕt sè 1 2 3 4 5 6 p 1 q 3 2 4 r 5 t p,t vµ u truy xuÊt cïng mét c¬ së d÷ liÖu trong cËp nhËt s 6 u H×nh 6.8 S¬ ®å c¸c m«-®un nèi kÕt p xuÊt cê tr¹ng th¸i danh s¸ch c¸c phÇn cña m¸y bay danh s¸ch c¸c phÇn cña m¸y bay phÇn chÕ t¹o tªn phÇn H×nh 6.9 M« t¶ giao diÖn H×nh 6.6 q r D÷ liÖu - q nhËp kiÓu m¸y bay m· hµm sè phÇn sè phÇn §iÒu khiÓn s D÷ liÖu hoÆc Nh·n hiÖu D÷ liÖu hoÆc Nh·n hiÖu r s t t u Chung Chung - - D÷ liÖu - D÷ liÖu Chung H×nh 6.10 Nèi kÕt gi÷a c¸c cÆp m«-®un Huúnh Xu©n HiÖp - CNPM 75 Bao gãi d÷ liÖu (data encapsulation) Lµ mét d¹ng cña trõu tưîng hãa m_encapsulation Definition of job_queue initialize_job_queue() {..........} add_job_to_queue(job j) {..........} remove_job_from_queue(job j) {..........} H×nh 6.11 ThiÕt kÕ job_queue trong mét phÇn hÖ ®iÒu hµnh sö dông bao gãi d÷ liÖu Huúnh Xu©n HiÖp - CNPM 76 KiÓu d÷ liÖu trõu tưîng (abstract data types) KiÓu d÷ liÖu trõu tưîng: lµ kiÓu d÷ liÖu cïng víi c¸c thao t¸c trªn chÝnh nã VD: class JobQueue { // d÷ liÖu private int queueLength; private int queue[25] = new int[25]; // c¸c public {...} public {...} public {...} phư¬ng thøc void initializeJobQueue() void addJobToQueue(int jobNumber) void removeJobfromQueue() } H×nh 6.12 JobQueue cµi ®Æt trªn Java như lµ mét kiÓu d÷ liÖu trõu tưîng Trõu tưîng hãa thñ tôc (procedural abstraction) Trõu tưîng hãa lÆp (iteration abstraction) [Liskov vµ Guttag, 1986] Huúnh Xu©n HiÖp - CNPM 77 Th«ng tin Èn (information hiding) Do Parnas ®Ò xuÊt [Parnas, 1971, 1972a, 1972b] Cµi ®Æt chi tiÕt cña: queue queueLength initializeJobQueue addJobToQueue removeJobFromQueue Giao diÖn: initializeJobQueue addJobToQueue removeJobFromQueue Th«ng tin Èn Th«ng tin thÊy ®ưîc H×nh 6.13 KiÓu d÷ liÖu trõu tưîng víi th«ng tin Èn Huúnh Xu©n HiÖp - CNPM 78 §èi tưîng (objects) Lµ kiÓu d÷ liÖu trõu tưîng hay m«-®un víi th«ng tin ®ưîc g¾n kÕt Lµ thÓ hiÖn (instance) cña mét kiÓu d÷ liÖu trõu tưîng Hç trî thõa kÕ, kh¸i niÖm ®ưîc giíi thiÖu ®Çu tiªn ë ng«n ng÷ lËp tr×nh Simula67 [Dahl vµ Nygaard, 1966; Dahl, Myrhaug and Nygaard, 1973] Hç trî ®a h×nh vµ liªn kÕt ®éng Mét sè vÊn ®Ò: g¾n kÕt gi÷a c¸c m«-®un ®ưîc thõa kÕ vµ c¸c m«-®un ®Þnh nghÜa míi nèi kÕt chung víi ®Þnh nghÜa c«ng céng: public C¸c ®èi tưîng víi ®é g¾n kÕt cao vµ nèi kÕt thÊp C¸c ®èi tưîng C¸c kiÓu d÷ kiÖu trõu tưîng Bao gãi d÷ liÖu C¸c m«-®un víi ®é g¾n kÕt cao vµ nèi kÕt thÊp C¸c m«-®un H×nh 6.14 C¸c kh¸i niÖm chÝnh Huúnh Xu©n HiÖp - CNPM 79
- Xem thêm -

Tài liệu liên quan