1
我有一個頂級的,讓我們稱之爲汽車。我有一個接口,可以稱之爲ITyre,然後我有兩個實現ITyre的類。讓我們稱他們爲固特異和普利司通。UML接口是否可以成爲聚合關係的一部分?
我可以在接口ITyre和Car之間有一個組合關聯(從UML的角度來看,不是一種特定的語言)嗎?
我有一個頂級的,讓我們稱之爲汽車。我有一個接口,可以稱之爲ITyre,然後我有兩個實現ITyre的類。讓我們稱他們爲固特異和普利司通。UML接口是否可以成爲聚合關係的一部分?
我可以在接口ITyre和Car之間有一個組合關聯(從UML的角度來看,不是一種特定的語言)嗎?
如果你的意思是,
public class Car
{
ITyre something;
}
是的,可以。事實上,如果你這樣做,它會很好。這樣你的汽車就不依賴於任何特定的具體實施。您在這裏的實施將使您可以靈活地更換輪胎(DI或工廠),無論是誰製造輪胎。
一個小的增加:組合有點混亂,因爲它定義了一個對象的所有權。當然,構圖意味着一個物體是一個較大物體的一部分。在接口的情況下,只有接口是包含更大對象的一部分。但是,這仍然是一個UML意義上的組合。如果沒有擁有Car對象,'Tyre'對象不應該存在,不管它是直接包含還是通過接口。 – SomeWittyUsername