Chr*_*iss 2 uml class-design class-diagram interface
正如我们在OOP中所知,接口提供了一组没有实现的操作,但类是相反的.
在面向对象的设计中,我们使用uml接口有一组没有实现的操作,类也有一组没有实现的操作(我知道类除了操作之外还有属性)?
那么,UML有什么区别?
正如我们在OOP中所知,接口提供了一组没有实现的操作,但类是相反的.
不完全正确 - 抽象类是具有一个或多个声明但未定义的方法的类(在C++和Java中,这些是抽象方法).您可以使用其所有方法抽象定义类 - 在这种情况下,与接口有着密切的相似性.
但是,UML中的一个关键思想是接口是一组暴露给其他类或组件的方法.目的是定义一组操作.
然而,转向编程,可以使方法抽象化以帮助开发(例如,通过确保所有子类具有实现).这个方法可能纯粹是类的内部.
最后一个观察:UML中的术语接口和类与语言中的接口和类并不完全同义,比如Java.例如,Java不允许多类继承.相反,Java有一个interface允许类实现多种类型(不是类 - 一个微妙的区别)
编辑
快速说明技术词汇:
定义是声明为类是否类型.
(请参阅类型和类有什么区别?)
接口的目的是定义一组操作但我们是否也为类同样定义了一组操作?
因此,接口的目的是声明(不定义)其他对象想要使用的一组公共操作.类(在UML中)是完整的操作集(公共和私有).类(在Java,C++等中)还定义了所有非抽象操作.
所以关键是意图:当系统的其他组件想要使用一组操作时,使用接口.当您使用UML来描述(组件,算法等)的实现时,请使用类.
当我去那些假设实现这些操作的课程时,我看不到这些操作的任何实现,因为图表描述了那些操作或任何事情都给出了实现的标志?
UML工具用于建模,因此故意避免提供输入操作定义的位置 - 这将留待以后使用.你的想法是:
这种深思熟虑的差距(你可能会说缺点)意味着UML中的'define'与'declare'毫无意义.抱歉.