类和组件之间的区别

一直困惑类和组件之间的区别。一个主要用于设计视图,一个主要用于实现视图。《UML用于指南》给了我新的启发。

作者指出:内部结构(包括端口(port)、部件(part)和连接件(connector))可用于实现任意的类而不仅仅是组件。在语义上,类和组件的确没有什么区别。然而从惯例上说,组件在表示带有内部结构的封装概念, 特别是那些在实现中不能直接映射到一个点一类的概念时,往往很有效。

这两者的区别,一个是注重于问题及问题的解决方案,侧重功能实现。而组件图是给负责子系统或组件开发的相关人员看的。 另外,二者的粒度也不同。在面向对象中类是基本单元。而组件可以是一个类,也可以是多个类共同实现的,侧重于接口和可替换性,是更大的功能单元。