第13章物件资料结构塑模.ppt

第13章物件资料结构塑模

K、物件資料結構塑模 ~類別圖與物件圖 類別 類別圖 執行、實作觀點的類別種類 能見度(Visibility) 類別間之關係 相依 一般化 關聯 實現化 物件圖 物件資料結構塑模 1. 類別(Class) 一群相關物件的定義、描述或樣版 類別具有名稱、屬性與操作,同一類別之物件具有相同屬性與操作 類別封裝了屬性及操作 類別與物件的關係 類別(Class):物件的設計藍圖 物件(Object):根據類別所建造出來的實體 (Instance) 物件導向程式設計,以 class 表現真實世界的物品 類別圖與物件圖 類別是物件導向軟體系統的核心 類別圖(Class Diagram) 物件導向的資料結構塑模工具 類似傳統資料庫的ERD ,但是ERD是針對資料來做設計,並非以物件導向的觀點來設計 描述軟體系統靜態結構的類別和類別關係 物件圖(Object Diagram) 是類別圖的實例(Instances),用於描述一系統於某時間點的靜態結構 一棟房子的藍圖就好比是類別;而依據藍圖所蓋出的房子就是實例。 由類別所建構出來的實例稱為物件 2.類別圖 實例 實例:ATM自動櫃員機系統的 類別圖 2.1 執行觀點的類別種類 永存類別(Persistent Class)─當程式執行後,該物件之資料需被儲存在資料庫者 暫存類別(Transient Class)─ 當程式執行後,該物件之資料不需被儲存在資料庫且該物件會被刪除者 2.2 實作觀點的類別種類 實體類別(Entity Class) 以企業的領域術語命名,通常表示使用個案完成後仍需儲存在資料庫中的資料(永存類別)。 介面類別(Boundary Class) 也稱邊界類別,包含表單、報表、硬體介面以及其他和系統溝通的介面。 程式執行完畢後,介面類別之物件都將被刪除(暫存類別)。 控制類別(Control Class) 屬於暫存類別,負責協調其他類別的工作,傳送訊息給其他類別,或是將工作指派給其他類別。 一個使用個案至少需搭配一個控制類別,藉由控制類別來控制使用個案中各項事件的發生順序。 2.3 能見度(Visibility) 物件導向所提供的封裝機制 公共的(Public):所有的物件都可以存取與設定它的值 保護的(Protected):只有子類別可以存取與設定它的值 類別庫(Package):只有相同類別庫之類別可以存取與設定它的值 私有的(Private):只屬於它自己,任何其他的類別都不可以存取它 2.4 類別間之關係 對於領域中的問題,會藉由許多的物件一起合作以提供解答。因此,塑模類別之間的關係是類別圖很重要的工作。 2.4.1 相依關係(Dependency) 是一種「使用」的關係 表示一個類別會用到其他類別,且被使用之類別的改變可能會影響使用它的類別,但反之則不必然。 以虛線箭頭由使用類別指向被使用類別,如下圖為Class A相依於Class B 相依關係 import B; public class A { public void method1(B b) { // . . . } public void method2() { B tempB = new B(); // . . . } } 相依關係實例 Window(視窗)類別使用Event(事件)類別 Event 類別的更改會影響Window 類別的操作,即Window 類別上的操作行為會依照Event 類別不同的行為而改變。 例如滑鼠在Window 類別開啟(Open)或移動(Move)等按鈕點選事件(Event),會使此Window 類別產生不同的操作行為。 2.4.2 一般化關係(Generalization) 父類別的所有特徵、性質及操作,都會自動被子類別所繼承。 子類別不需再去定義它們,就可以自動擁有 畫法:一條空心三角形的直線,從子類別連接到父類別 一般化關係實例 2.4.3 關聯關係(Association) 代表建立類別之間彼此互通訊息的管道,物件與物件間才可以互相傳遞訊息,完成所需的工作。 聯關係之表達符號為實線。 關聯關係 意謂一類別之物件知道另一類別之物件的存在,或用到另一類別之物件的服務,但不是擁有此服務。 例如人扮演車子之駕駛者:一類別之物件(人)知道另一類別之物件(車子)的存在,且(人)使用到(車子)的服務,故人與車子間有關聯關係 程式碼看關聯關係 例如:航班跟飛機之間的關聯關係 一架飛機會有它所屬的指定航班,而一個航班也會指派某一架飛機來飛航。 它的對應程式碼則為: 關聯關係的互通性(Navigability) 關聯若沒有箭號,表示雙向關係 若在類別間之關聯

文档评论(0)

1亿VIP精品文档

相关文档