就个人理解来说,接口就意味着规范,可变.
规范:
对方法名称的规范,自类可以重写方法,不同自类具体实现逻辑可能不一样,但是名称一样,调用方法一样,就进行了规范.
可变:
比如策略模式,将程序中可变的部分抽离出来作为接口,这样就可以动态指定或增加具体的实现,而调用方式却不变.
又比如观察者模式,比如我现在要发布一个消息给某一群人,很简单,直接搞个集合,遍历直接通知就好了,但是这样扩展性很差,比如我想把这个消息发布给另外一群人呢?所以就给消息定义了一个接口,给观察者定义了一个接口,它们都有自己各自的实现,但是调用方式是不变的,我们可以随意给不同的观察者发布不同的消息,也就是可变。
额外说一下spring中的观察者模式.
消息接口->ApplicationEvent,也就是平常说的事件.
观察者接口->ApplicationListener,也就是平常说的监听器,
为了能够更灵活的发布事件,发布消息,还定义了一个发布接口->AplicationEventMuticaster,也就是我们平常所说的多播器.