📄 第三章 条目对象.htm
字号:
<html>
<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1 {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>第三章 条目对象</strong></big></p>
<p> 当服务注册本身时,它使用一些属性的集合。每个集合是一个类或类型的实例例如,一个编辑器可以有属性
类型FileType:
<PRE><code>
public Class FileType implements Entry {
public String type; // this is a MIME type
public FileType(String type) {
this.type = type;
}
}
</code></PRE>
对于文本编辑器,属性设为FileType("plain/text");对于RTF编辑器,属性设为FileType("application/rtf")。
(当然,在类中可以有多个域)。
一些服务可以处理多个属性。例如,大部分字处理器能处理多种文档类型。在这种情况下,一个服务可以注册
一个属性数组。
<PRE><code>
Entry[] entries = new Entry[] {new FileType("plain/text"),
new FileType("application/rtf")
};
</code></PRE>
另一方面,一个客户希望找到能处理它要求属性的服务。因此客户同样使用Entry,对于任何特定的Entry类,
客户指定:
<P> 1、 哪个字段必须真正地匹配(非空值)
<P> 2、 哪个字段不用关心(可以是空)
<P> 这是很粗略的。典型的,一个打印机有每分钟打印多少页的性能。如果指定该属性,那么很难找到打印服务。一个要求打
印服务的客户不并关心速度或某个特定速度。它不能要求打印速度大于某个值。一个属性必须精确匹配或简单地被忽略掉。
<P> 1、 Entry的限制性<BR> Entries通过RMI传递。输出服务对象被序列化后,通过RMI传递,在某个远程客户端还原成对象。Entries同样
被序列化,
通过RMI传递,但是不被还原(reconstituted)。所以当比较一个来自服务的Entry和一个来自客户要求的Entry时,
它们是以序列化的形式比较的。
一个entry不能有原始类型例如int或char。如果要求这些类型,则必须包装成类例如Integer或Caracter。一个
entry必须是公共属性,而且不能是static和final类型。
<P> 2、辅助类 <BR>
类AbstractEntry是Entry子类,它是一个辅助类。它实现例如equals()和toString()的方法。
另外,sun公司还提供了一些辅助类,它们都是entry的子类:
<pre><code>
Address --- 服务物理部件的地址
Comment --- 过于服务的自由格式说明
Location --- 服务物理部件的位置。它和Address的不同之处是它能单独地用在小的局部组织中。
Name --- 用户使用的服务名,一个服务可以有多个名字。
ServiceInfo--- 服务的普通信息,包括制造商、产品、卖主的名字。
ServiceType--- 服务类型面向人类的信息。这和它的数据或类的类型没有关系,更多的面向允许人
决定该服务能做什么,它和什么类似,不需要知道关于Java平台的类类型和数据。
Status --- 那些和状态有关的entry类必须继承的基类。
例如,Address类包含:
String country;
String locality; // City or locality name.
String organization; // Name of the company or organization that
provides this service.
String organizationalUnit; // The unit within the organization that provides this service.
String postalCode; // Postal code. 邮政编码
String stateOrProvince; // Full name or standard postal abbreviation of
a state or province.
String street; //Street address.
</code></pre>
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -