2011-07-22 105 views
1

我有一个顶级的,让我们称之为汽车。我有一个接口,可以称之为ITyre,然后我有两个实现ITyre的类。让我们称他们为固特异和普利司通。UML接口是否可以成为聚合关系的一部分?

我可以在接口ITyre和Car之间有一个组合关联(从UML的角度来看,不是一种特定的语言)吗?

回答

1

如果你的意思是,

public class Car 
{ 
    ITyre something; 
} 

是的,可以。事实上,如果你这样做,它会很好。这样你的汽车就不依赖于任何特定的具体实施。您在这里的实施将使您可以灵活地更换轮胎(DI或工厂),无论是谁制造轮胎。

+0

一个小的增加:组合有点混乱,因为它定义了一个对象的所有权。当然,构图意味着一个物体是一个较大物体的一部分。在接口的情况下,只有接口是包含更大对象的一部分。但是,这仍然是一个UML意义上的组合。如果没有拥有Car对象,'Tyre'对象不应该存在,不管它是直接包含还是通过接口。 – SomeWittyUsername