上一篇文章我们讲到了抽象类和具象类。其中抽象类是不能被实例化的类。这即可能是因为类的实现还不完整(如缺少某些操作的方法),也可能是因为功能不完整而不想被实例化。与之相对的就是具象类。
接口
但是一般来说,抽象类还是有一些功能(属性,方法)的。我们继续简化(抽象化),直到只剩下公开的抽象操作,而没有了属性和方法,这种状态UML有一个专门的名字:接口(interface)。
接口用来定义一组公共的特性和服务,是服务提供者和利用者之间的协议,定义接口的目的就是为了替换由不同的服务提供者提供的实现;抽象类抽取了具象类的共通特性,并通过具象类实现完整的功能。目的在于抽取共通而不是定义行为。二者的使用场景有很大的不同。
实现(realization)
具象类到抽象类的关系叫泛化,接口的实现到接口的关系就叫实现(realization)。
表示法
在类图中,接口和类的表示基本一致,只是在类名上多了一个《interface》关键字。实现则有两种表现形式:一是指向接口类的顶端带有三角形的虚线;另一种方式是带有《interface》关键字的依赖箭头。
尽量用左边这个吧。
如果阅读本文能给您带来些许收获,欢迎分享给更多的朋友!
阅读更多新文章,请扫描下面二维码,关注公众号【面向对象思考】