我用Google搜索并阅读了Java文档,但我有点困惑.有人Context可以用简单的英语解释一下是什么吗?
Bal*_*usC 95
在编程术语中,它是较大的周围部分,可以对当前工作单元的行为产生任何影响.例如,使用的运行环境,环境变量,实例变量,局部变量,其他类的状态,当前环境的状态等.
在某些API中,您可以在界面/类中看到此名称,例如Servlet ServletContext,JSF FacesContext,Spring ApplicationContext,Android Context,JNDI InitialContext等.它们通常都遵循Facade Pattern,它抽象出最终用户不需要知道的环境细节.单个接口/类.
Wil*_*ung 28
上下文代表您的环境.它代表您在系统中所处的状态.
例如,在Java中的Web编程中,您有一个Request和一个Response.这些传递给Servlet的服务方法.
Servlet的一个属性是ServletConfig,其中有一个ServletContext.
ServletContext用于告诉servlet Servlet所在的Container.
因此,ServletContext表示其容器内的servlet环境.
类似地,在Java EE中,您有EBJContexts,元素(如会话bean)可以访问它们的容器.
这些是今天Java中使用的上下文的两个例子.
编辑 -
你提到Android.
请看这里:http://developer.android.com/reference/android/content/Context.html
您可以看到此Context如何为您提供有关Android应用程序部署位置以及可用内容的各种信息.
简单地说,Java上下文native一起表示Java 方法.
在下一个Java代码中,两行代码需要上下文:// (1)和// (2)
import java.io.*;
public class Runner{
public static void main(String[] args) throws IOException { // (1)
File file = new File("D:/text.txt");
String text = "";
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null){ // (2)
text += line;
}
System.out.println(text);
}
}
Run Code Online (Sandbox Code Playgroud)
(1)需要上下文因为是由Java本机方法调用的 private native void java.lang.Thread.start0();
(2)reader.readLine()需要上下文因为调用Java本机方法 public static native void java.lang.System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
PS.
这就是BalusC对Facade模式的更严格的说法.
| 归档时间: |
|
| 查看次数: |
108833 次 |
| 最近记录: |