组件总是接口实现吗?

Is component always interface implementation?

我想展示我的软件的架构表示。我的大学讲座推荐我使用组件图。但是如果我的软件根本不使用界面,我应该绘制什么作为我的组件?

因为据我所知,组件图中的组件由接口及其实现组成。不幸的是,我的软件(Android 应用程序)根本不使用界面(仅使用界面作为改造 API)。我在堆栈溢出中阅读了一些 post,但这并没有给我任何意义。我最终为每个目录绘制了下面的组件图。请给我一些绘制组件图的建议。

答案在你的图表中。您有四个组件,在四个不同的包中。您已经在您的 Android 应用程序和您的服务器之间明确标识了一个 API(应用程序编程接口),这是显而易见的。但是,您在这里还确定了至少 5 个其他接口:

  1. 您的 Android 应用程序被定型为 "UI"(我认为是指用户 界面 )。这是您的用户和系统之间的接口。
  2. Android 应用程序连接到(引用?)数据库。那是另一个接口——如果它是 RDBMS,假设是某种 OLTP?
  3. UI 到应用模型。假设您的模型已编译到应用程序中,这可以在您的运行时内部进行连接。
  4. 服务器到应用程序模型。再次在服务器内部假设其已编译。
  5. 数据库的应用程序模型(我假设您在这里的参考箭头方向错误?)。

根据 UML 规范,允许在组件图中使用没有接口的组件,至少我不知道规范中有任何内容禁止这样做。如果一个组件 X 使用另一个组件 Y,您应该绘制从 X 到 Y 的依赖关系(带有空心箭头的虚线箭头),可选地装饰构造型 ≪use≫。

以下是我对您的组件图的评论:

  • packages 之间的 solid 箭头替换为 之间的 dashed 箭头组件.
  • 不要使用球窝表示法,而是使用接口依赖项(参见 )。