zoukankan      html  css  js  c++  java
  • 框架设计注意事项——生命周期

    今天在阅读Servlet3.0.1规范时,在讲述Servlet的生命周期的章节发现一个框架设计时需要注意的点,在这里整理一下。

    我认为,框架和库的不同点在于“控制流的走向”。
    当我们使用一个库,控制流从我们的代码流向库代码,然后从库代码再流回我们的代码。当我们使用一个框架时,控制流同框架开始,流向我们的代码,最终又回到了框架的代码。这意味着当我们使用一个框架时,我们完成的组件的生命周期是由框架来管理的。在Servlet的场景下,Servlet是框架,我们实现的Servlet是组件。所以Servlet的生命周期由框架管控。Servlet的总共由三个生命周期的方法:

    init(ServletConfig):void;
    Service(ServletRequest, ServletResponse):void;
    destroy():void;
    

    Servlet规范中表述时提到,static initialization methods 不同于init(ServletConfig):void方法。这里的原因很好理解:当类被加载时静态初始化方法被调用。这是可能运行时环境还没有准备好,所以开发者应该避免在静态初始化方法中进行一些依赖容器的操作。
    这里启发了我,作为框架的使用者,如果框架没有为我们初始化生命周期的钩子,我们可以通过静态初始化方法来完成这个操作。但是需要注意,这时环境可能不完善。
    作为框架的作者,我们应该设计好组件的生命周期管理工作,同时在文档中写清楚静态初始化方法这种操作带来的问题。

  • 相关阅读:
    vue生命周期总结
    Generator的基本用法
    React context基本用法
    盗链
    Linux 黑白界面显示
    nginx 反向代理Apache
    apache+php windows下配置
    正则表达式匹配空行
    列表页条目不刷新删除
    linux终端自定义设置
  • 原文地址:https://www.cnblogs.com/x2zh/p/10623929.html
Copyright © 2011-2022 走看看