?? 第三章 條目對象.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 + -