首先類之間的關係從巨集觀上可以分為:關聯、依賴、繼承,而其中關聯又有兩種特例:聚合和組合,不過在uml2.x中聚合和組合合成一種關係了。
從使用的頻率來看,關聯(包括聚合和組合)關係是使用最為廣泛的;其次是依賴和繼承
關聯和依賴的區別:
從類之間關係的強弱程度來分,關聯表示類之間的很強的關係;依賴表示類之間的較弱的關係;
從類之間關係的時間角度來分,關聯表示類之間的「持久」關係,這種關係一般表示一種重要的業務之間的關係,需要儲存的,或者說需要「持久化」的,或者說需要儲存到資料庫中的。比如學生管理系統中的student類和class(班級)類,乙個student物件屬於哪個class是乙個重要的業務關係,如果這種關係不儲存,系統就無法管理。另外,依賴表示類之間的是一種「臨時、短暫」關係,這種關係是不需要儲存的,比如student類和stueditscreen(學生登入介面)類之間就是一種依賴關係,stueditscreen類依賴student類,依賴student物件的資訊來顯示編輯學生資訊。
設計類之間的關係是遵循的原則:首先判斷類之間是否是一種「關聯」關係,若不是再判斷是否是「依賴關係」,一般情況下若不是關聯,就是依賴關係
依賴一般情況下是以下幾種情況之一:a、classa中某個方法的引數型別是classb;這種情況成為耦合;b、classa中某個方法的引數型別是classb的乙個屬性;這種情況成為緊耦合;c、classa中某個方法的實現例項化classb;d、classa中某個方法的返回值的型別是classb;如果出現了上述四種情況之一,兩個類很有可能就是「依賴」關係。
依賴關係(dependency):是類與類之間的連線,依賴總是單向的。依賴關係代表乙個類依賴於另乙個類的定義。下面的例子中class a 依賴與class b、c、d。
public class a }
關聯在**中一般表示為屬性(成員變數),例如下面例子中 class a與b關聯
public class a
如果b也關聯到a,那麼它們就是雙向的關聯。
public class b 7.
聚合關係(aggregation):是關聯關係的一種,是強的關聯關係。聚合是整體與個體之間的關係。如汽車類與引摯類,輪胎類之間的關係就是整體與個體的關係。
與關聯關係一樣,聚合關係也是通過例項變數來實現的。
***關聯關係所涉及的兩個類是處於同一層次上的,而在聚合關係中,兩個類處在不平等的層次上的,乙個代表整體,乙個代表部分。(關聯與聚合僅僅從語法上是區分不開的,需要察所涉及的類之間的邏輯關係。)
8.組成關係(composition):是關聯關係的一種,是比聚合關係強的關係。它要求普通的聚合關係中代表的物件負責代表部分的物件的生命週期,合成關係是不能共享的。
代表整體的物件需要負責保持物件的存活,在一些情況下負責將代表部分的物件湮滅掉。代表整體的物件可以將代表部分的物件傳遞給另乙個物件,由後者負責此物件的生命週期。換言之,
*******代表部分的物件在每乙個時刻只能與乙個物件發生合成關係,由後者排它的負責其生命週期。
關於類之間的關係總結
首先類之間的關係從巨集觀上可以分為 關聯 依賴 繼承,而其中關聯又有兩種特例 聚合和組合,不過在uml2.x中聚合和組合合成一種關係了。從使用的頻率來看,關聯 包括聚合和組合 關係是使用最為廣泛的 其次是依賴和繼承 關聯和依賴的區別 從類之間關係的強弱程度來分,關聯表示類之間的很強的關係 依賴表示類...
關於類之間的關係總結
首先類之間的關係從巨集觀上可以分為 關聯 依賴 繼承,而其中關聯又有兩種特例 聚合和組合,不過在uml2.x中聚合和組合合成一種關係了。從使用的頻率來看,關聯 包括聚合和組合 關係是使用最為廣泛的 其次是依賴和繼承 關聯和依賴的區別 從類之間關係的強弱程度來分,關聯表示類之間的很強的關係 依賴表示類...
類之間的關係
類之間的關係 內容 網上關於此類的討論非常多,發現對於該問題的理解各有各的說法,而各個說法中又相去甚遠。通過瀏覽這些討論以及對 的參考,發表一下自己的看法.類間關係有很多種,在大的類別上可以分為兩種 縱向關係 橫向關係。縱向關係就是繼承關係,它的概念非常明確,也成為oo的三個重要特徵之一,這裡不過多...