正如我们在OOP中所知,接口提供了一组没有实现的操作,但是 阶级正好相反。
在面向对象设计中,我们使用uml这个接口有一组没有实现的操作 并且该类还有一组没有实现的操作(我知道除了操作之外,类还有属性)?那么,UML有什么区别?
答案 0 :(得分:6)
正如我们在OOP中所知,接口提供了一组没有实现的操作,但类是相反的。
不完全正确 - 抽象类是具有一个或多个声明但未定义的方法的类(在C ++和Java中,它们是抽象方法)。您可以使用其所有方法抽象定义类 - 在这种情况下,与接口有着密切的相似性。
UML中的一个关键想法是,接口是一组公开到其他类或组件的方法。目的是定义一组操作。
然而,转向编程,可以使方法抽象化以帮助开发(例如,通过确保所有子类都具有实现)。这个方法可能纯粹属于类内部。
最后一个观察:UML中的术语接口和类与语言中的接口和类并不完全同义,比如说Java。例如,Java不允许多个类继承。相反,Java有interface
允许类实现多种类型(不是类 - 一个微妙的区别)
修改强>
快速记录技术词语:
定义是声明类是要键入。
(请参阅What is the difference between Type and Class?)
接口的目的是定义一组操作但我们是否也为类同样定义了一组操作?
因此,接口的目的是声明(不定义)其他对象想要使用的一组 public 操作。类(在UML中)是完整的操作集(公共和私有)。另外一个类(在Java,C ++等中)定义所有非抽象操作。
因此关键是 intent :当系统的其他组件想要使用一组操作时,请使用 interface 。当您使用UML描述(组件,算法等)的实现时,请使用类。
当我去那些假设实现这些操作的课程时,我看不到这些操作的任何实现,因为图表描述了那些操作或任何给出实现的标志?
UML tool用于建模,因此故意避免提供输入操作定义的位置 - 这是留待以后使用的。你的想法是:
这种故意的差距(你可能会说缺点)意味着UML中的'define'与'declare'毫无意义。遗憾。
答案 1 :(得分:2)
也许您刚刚看到为描述概述而创建的模型,而不是完全对系统进行建模,但您可以在大多数UML工具中对类操作的行为进行建模,并且某些工具也可以充分模拟行为, executed。
与操作关联的行为可以使用UML状态机,使用UML操作语义或其他几种方式建模。很多时候,这被排除在模型之外 - 去达到那个详细程度并不总是有用,因此可以在与操作相关的文档中暗示实现。但是UML中的具体类肯定具有与其操作相关的具体行为,因此UML和编程之间的区别在于UML侧重于行为而不是实现。
答案 2 :(得分:0)
根据Wikipedia -
统一建模语言(UML)是一种标准化的通用目的 面向对象软件领域的建模语言 工程。统一建模语言包括一组图形 用于创建面向对象的可视化模型的符号技术 软件密集型系统。
所以,最重要的是UML是通用的和图形的。它不仅涉及类和接口。 UML提供了一种可视化系统架构蓝图的标准方法。 软件建设需要一个计划。结构图,行为图,交互图有助于在多维度和细节级别中进行可视化 适用于新系统和旧系统。 统一和通用,适应大型系统的并行发展。
当我想到UML时,我想到的一个术语是软件质量。近年来困扰软件行业的一件事是软件设计不佳。虽然软件行业在过去十年中表现相当不错,但全球化的影响正在改变软件的设计方式。