zoukankan      html  css  js  c++  java
  • 模板方法设计模式在抽象类中的应用

    假设某个项目的所有Servlet类都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的Servlet都继承这个抽象基类,在抽象基类的service方法中完成权限判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的业务逻辑代码,伪代码如下:

    父类:

     1 public abstract class BaseServlet extends HttpServlet{
     2     public final void service(HttpServletRequest request, HttpServletResponse response) throws IOExcetion,ServletException    {
     3         记录访问日志
     4         进行权限判断
     5         if(具有权限){
     6             try{
     7                 doService(request,response);
     8         }
     9             catch(Excetpion e)    {
    10                     记录异常信息
    11             }
    12         }
    13     } 
    14     protected abstract void doService(HttpServletRequest request, HttpServletResponse response) throws IOExcetion,ServletException;  
    15     //注意访问权限定义成protected,显得既专业,又严谨,因为它是专门给子类用的
    16 }

    子类:

    1 public class MyServlet extends BaseServlet{
    2     protected void doService(HttpServletRequest request, HttpServletResponse response) throws IOExcetion,ServletException{
    3         本Servlet只处理的具体业务逻辑代码
    4     } 
    5 }

    父类方法中间的某段代码不确定,留给子类干,就用模板方法设计模式。

  • 相关阅读:
    python之路
    go mod
    黑苹果流程
    mac go配置,环境配置
    mac重装系统
    多级分销概念 MongoDB||MySQL
    MongoDB查询mgov2的聚合方法
    linux被当矿机排查案例
    docker-compose容器中redis权限问题
    docker-compose中redis查询版本
  • 原文地址:https://www.cnblogs.com/jixiaohua/p/10421129.html
Copyright © 2011-2022 走看看