Java中的适配器原理解析
作者:Husky_DQ
这篇文章主要介绍了Java中的适配器原理解析,当实现接口时,为了使所用的类中只实现需要的方法,使代码更加简洁,可以定义一个抽象类实现接口,将所需要的方法定义为 抽象方法,然后让类继承此抽象方法即可,需要的朋友可以参考下
Java的适配器原理
当实现接口时,为了使所用的类中只实现需要的方法,使代码更加简洁,可以定义一个抽象类实现接口,将所需要的方法定义为 抽象方法,然后让类继承此抽象方法即可
public abstract GenericServlet implements Servlet{ @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } public abstract void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException; @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
public class targetClass extende GenericServlet(){ @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException{ System.out.println("Target's service is executing"); } }
提供了GenericServlet类之后,init方法仍会执行,Tomcat创建ServletConfig对象之后,调用了init方法将ServletConfig对象传过来
改进GenericServlet
public abstract GenericServlet implements Servlet{ //config对象可能在其他方法中会被使用到,因此需要定义一个成员变量 private ServletConfig config; @Override //不能让子类重写init方法,因为加入config=null,会出问题,所以要给init方法加关键字final来阻止init方法被重写 public final void init(ServletConfig config) throws ServletException { this.config=config; //如果必须在子类重写init方法,可以重载以后一个init方法,在原来的init方法中调用即可 this.init(); } public void init(){ } @Override public ServletConfig getServletConfig() { return config; } public abstract void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException; @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
Servlet规范已经包含完善的GenericServlet
jakarta.servlet.GenericServlet
到此这篇关于Java中的适配器原理解析的文章就介绍到这了,更多相关Java的适配器原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!