模板方法设计模式在抽象类中的应用
假设某个项目的所有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 }
父类方法中间的某段代码不确定,留给子类干,就用模板方法设计模式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探