JAVA基础——适配器设计模式
首先看JDK对适配器设计模式的应用
接口 MouseListener
用户可以创建MouseListener的实现类,来响应各种鼠标事件。
由于接口中的方法都是抽象的,因此实现类必须实现所有的方法。否则就必须声明为抽象类。
但在某些情况下,用户有可能只想处理按下鼠标按钮的事件,而忽略其他事件
此时MouseListener接口的实现类仅仅实现了mousePressed()方法,但不得不对其他方法提供空的方法体。
为了简化编程 JDK为MouseListener提供了一个默认的适配器
类 MouseAdapter
为所有的方法提供空的方法体,接收鼠标事件的抽象适配器类。此类中的方法为空。此类存在的目的是方便创建侦听器对象。
用户自定义的MyMouseListener监听器可以继承MouseAdapter类,在MyMouseListener类中,只需要覆盖特定的方法 而不必实现所有的方法。
可以通过继承来简化编程,这是默认适配器的优点所在。
但是缺点是MyMouseListener不能再继承其他的类,因为java只支持单继承
上述MouseAdapter是提供了空的方法体。在应用中我们Adapter类提供的方法体,可以先去实现一些东西(子类去用的时候 可以在来重写这些方法)
SpringMVC的HandlerAdapter接口就有SpringMVC默认提供了几个适配器类供我们选择
AbstractHandlerMethodAdapter, AnnotationMethodHandlerAdapter, HttpRequestHandlerAdapter, RequestMappingHandlerAdapter, SimpleControllerHandlerAdapter, SimpleServletHandlerAdapter