﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-等牛奶的咖啡</title><link>http://www.blogjava.net/coffee3236888/</link><description>经营属于我们的咖啡屋</description><language>zh-cn</language><lastBuildDate>Wed, 10 Jun 2026 04:11:05 GMT</lastBuildDate><pubDate>Wed, 10 Jun 2026 04:11:05 GMT</pubDate><ttl>60</ttl><item><title>接口型模型的总结</title><link>http://www.blogjava.net/coffee3236888/articles/301221.html</link><dc:creator>等牛奶的咖啡</dc:creator><author>等牛奶的咖啡</author><pubDate>Thu, 05 Nov 2009 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/coffee3236888/articles/301221.html</guid><wfw:comment>http://www.blogjava.net/coffee3236888/comments/301221.html</wfw:comment><comments>http://www.blogjava.net/coffee3236888/articles/301221.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffee3236888/comments/commentRss/301221.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffee3236888/services/trackbacks/301221.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso" /><!--[if !mso]>
<style>
v":* {behavior:url(#default#VML);}
o":* {behavior:url(#default#VML);}
w":* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:楷体_GB2312;
panose-1:2 1 6 9 3 1 1 1 1 1;}
@font-face
{font-family:""@楷体_GB2312";
panose-1:2 1 6 9 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:宋体;
mso-bidi-font-family:"Times New Roman";
color:black;}
/* Page Definitions */
@page
{}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{}
@list l0:level1
{
text-indent:-36.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">最近一直在看设计模式方面的书，看完了第一部分接口型模式，下面是我的一些个人理解：</span></strong></p>
<p style="margin-left: 36pt; text-indent: -36pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><span>1．<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">Adapter</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">（适配器）模式</span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">我的理解就是怎样通过调用已经存在的方法来解决客户给我们的问题，这里的调用已经存在的方法就是java中的复用代码，可以通过组合和继承来实现。换句话说，就是引用或者继承现有的方法类来适配客户提供来的问题接口。</span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><br />
</span></strong></p>
<p style="margin-left: 36pt; text-indent: -36pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><span>2．<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">Facade</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">（外观）模式</span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">定位于内部组件和外部客户程序之间，用于二者间的桥梁。中间类的建立主要面向外部客户程序，为其提供功能接口，其方法体通过调用内部组件来实现。这样不仅简化了调用关系，还在一定程度上达到了&#8220;解耦&#8221;的效果。</span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><br />
</span></strong></p>
<p style="margin-left: 36pt; text-indent: -36pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><span>3．<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">Composite</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">（组合）模式</span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">主要解决客户在处理单个对象和组合对象上的接口一致性。具体的解决方法就是使用将对象用&#8220;树型结构&#8221;组织起来，以达成&#8220;部分－整体&#8221;的层次结构。通过遍历（Iterator）整个树型结构，获取所有的对象。</span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><br />
</span></strong></p>
<p style="margin-left: 36pt; text-indent: -36pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><span>4．<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">Bridge</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">（桥接）模式</span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">进一步的将抽象化与实现化&#8220;解耦&#8221;。桥梁模式中的所谓脱耦，就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系，从而使两者可以相对独立地变化。</span></strong></p>
<img src="http://www.blogjava.net/images/blogjava_net/coffee3236888/42479/o_Pic91.gif" alt="" border="0" />
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><!--[if gte vml 1]>
<![endif]--></span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">抽象化角色（Abstraction）引用了实现化角色（Implementor）的接口，并且抽象了客户的功能接口（面向客户）。</span></strong></p>
<p style="text-indent: 21pt;"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">实现化角色（Implementor）抽象出底层操作（面向底层）。</span></strong></p>
<img src ="http://www.blogjava.net/coffee3236888/aggbug/301221.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffee3236888/" target="_blank">等牛奶的咖啡</a> 2009-11-05 10:16 <a href="http://www.blogjava.net/coffee3236888/articles/301221.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Composite（组合）模式</title><link>http://www.blogjava.net/coffee3236888/articles/300568.html</link><dc:creator>等牛奶的咖啡</dc:creator><author>等牛奶的咖啡</author><pubDate>Sun, 01 Nov 2009 06:25:00 GMT</pubDate><guid>http://www.blogjava.net/coffee3236888/articles/300568.html</guid><wfw:comment>http://www.blogjava.net/coffee3236888/comments/300568.html</wfw:comment><comments>http://www.blogjava.net/coffee3236888/articles/300568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffee3236888/comments/commentRss/300568.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffee3236888/services/trackbacks/300568.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso" /><!--[if !mso]>
<style>
v":* {behavior:url(#default#VML);}
o":* {behavior:url(#default#VML);}
w":* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:楷体_GB2312;
panose-1:2 1 6 9 3 1 1 1 1 1;}
@font-face
{font-family:""@楷体_GB2312";
panose-1:2 1 6 9 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:宋体;
mso-bidi-font-family:"Times New Roman";
color:black;}
/* Page Definitions */
@page
{}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<p><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">Composite</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">（组合）模式</span></strong></p>
<p><strong>&nbsp;</strong></p>
<p><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">意图在与：让用户能够使用统一的接口处理单个对象以及对象组合</span></strong></p>
<p><strong>&nbsp;</strong></p>
<p><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">理解：</span></strong></p>
<img src="http://www.blogjava.net/images/blogjava_net/coffee3236888/42479/r_2008022419223642.gif" alt="" border="0" /><br />
<br />
<p><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><!--[if gte vml 1]>
<![endif]--></span></strong></p>
<p><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">Component</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">类抽象出Leaf类和Composite类共享的公共接口，在Composite类中使用递归（iterator）定义关于对象组合的方法。</span></strong></p>
<p><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">个人感觉：composite模式就是定义一个统一的接口既可以处理单个对象，又可以处理对象的组合。其中对组合对象的处理又不断被细分到对其中所包含的单个对象的处理，（使用递归遍历各个结点）。</span></strong></p>
<img src ="http://www.blogjava.net/coffee3236888/aggbug/300568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffee3236888/" target="_blank">等牛奶的咖啡</a> 2009-11-01 14:25 <a href="http://www.blogjava.net/coffee3236888/articles/300568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Short类及其方法的分析</title><link>http://www.blogjava.net/coffee3236888/articles/300412.html</link><dc:creator>等牛奶的咖啡</dc:creator><author>等牛奶的咖啡</author><pubDate>Fri, 30 Oct 2009 12:29:00 GMT</pubDate><guid>http://www.blogjava.net/coffee3236888/articles/300412.html</guid><wfw:comment>http://www.blogjava.net/coffee3236888/comments/300412.html</wfw:comment><comments>http://www.blogjava.net/coffee3236888/articles/300412.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffee3236888/comments/commentRss/300412.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffee3236888/services/trackbacks/300412.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;1&nbsp;/**&nbsp;&nbsp;2&nbsp;&nbsp;*&nbsp;提供程序设计的基础类&nbsp;&nbsp;3&nbsp;&nbsp;*/...&nbsp;&nbsp;<a href='http://www.blogjava.net/coffee3236888/articles/300412.html'>阅读全文</a><img src ="http://www.blogjava.net/coffee3236888/aggbug/300412.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffee3236888/" target="_blank">等牛奶的咖啡</a> 2009-10-30 20:29 <a href="http://www.blogjava.net/coffee3236888/articles/300412.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Byte类及其方法的分析</title><link>http://www.blogjava.net/coffee3236888/articles/300300.html</link><dc:creator>等牛奶的咖啡</dc:creator><author>等牛奶的咖啡</author><pubDate>Fri, 30 Oct 2009 01:16:00 GMT</pubDate><guid>http://www.blogjava.net/coffee3236888/articles/300300.html</guid><wfw:comment>http://www.blogjava.net/coffee3236888/comments/300300.html</wfw:comment><comments>http://www.blogjava.net/coffee3236888/articles/300300.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffee3236888/comments/commentRss/300300.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffee3236888/services/trackbacks/300300.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;1&nbsp;/**&nbsp;&nbsp;2&nbsp;&nbsp;*&nbsp;提供程序设计的基础类&nbsp;&nbsp;3&nbsp;&nbsp;*/...&nbsp;&nbsp;<a href='http://www.blogjava.net/coffee3236888/articles/300300.html'>阅读全文</a><img src ="http://www.blogjava.net/coffee3236888/aggbug/300300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffee3236888/" target="_blank">等牛奶的咖啡</a> 2009-10-30 09:16 <a href="http://www.blogjava.net/coffee3236888/articles/300300.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Number类及其方法的分析</title><link>http://www.blogjava.net/coffee3236888/articles/300297.html</link><dc:creator>等牛奶的咖啡</dc:creator><author>等牛奶的咖啡</author><pubDate>Fri, 30 Oct 2009 01:04:00 GMT</pubDate><guid>http://www.blogjava.net/coffee3236888/articles/300297.html</guid><wfw:comment>http://www.blogjava.net/coffee3236888/comments/300297.html</wfw:comment><comments>http://www.blogjava.net/coffee3236888/articles/300297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffee3236888/comments/commentRss/300297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffee3236888/services/trackbacks/300297.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;提供程序设计的基础<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;java.lang;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;抽象类&nbsp;Number<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;BigDecimal、BigInteger、Byte、Double、Float、Integer、Long&nbsp;和&nbsp;Short&nbsp;类的超类<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">abstract</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Number&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;java.io.Serializable&nbsp;{<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;">&nbsp;表明类的不同版本间的兼容性&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;serialVersionUID&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">8742448824652078965L</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;以&nbsp;int&nbsp;形式返回指定的数值<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">abstract</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;intValue();<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;以&nbsp;long&nbsp;形式返回指定的数值<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">abstract</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;longValue();<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;以&nbsp;float&nbsp;形式返回指定的数值<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">abstract</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">float</span><span style="color: #000000;">&nbsp;floatValue();<br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;以&nbsp;double&nbsp;形式返回指定的数值<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">abstract</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;doubleValue();<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;以&nbsp;byte&nbsp;形式返回指定的数值<br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">byte</span><span style="color: #000000;">&nbsp;byteValue()&nbsp;{<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">byte</span><span style="color: #000000;">)&nbsp;intValue();<br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;以&nbsp;short&nbsp;形式返回指定的数值<br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">short</span><span style="color: #000000;">&nbsp;shortValue()&nbsp;{<br />
</span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">short</span><span style="color: #000000;">)&nbsp;intValue();<br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">49</span>&nbsp;</div>
<img src ="http://www.blogjava.net/coffee3236888/aggbug/300297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffee3236888/" target="_blank">等牛奶的咖啡</a> 2009-10-30 09:04 <a href="http://www.blogjava.net/coffee3236888/articles/300297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Facade(外观)模式</title><link>http://www.blogjava.net/coffee3236888/articles/300251.html</link><dc:creator>等牛奶的咖啡</dc:creator><author>等牛奶的咖啡</author><pubDate>Thu, 29 Oct 2009 11:48:00 GMT</pubDate><guid>http://www.blogjava.net/coffee3236888/articles/300251.html</guid><wfw:comment>http://www.blogjava.net/coffee3236888/comments/300251.html</wfw:comment><comments>http://www.blogjava.net/coffee3236888/articles/300251.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffee3236888/comments/commentRss/300251.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffee3236888/services/trackbacks/300251.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles deflockedstate="false" latentstylecount="156">
</w:LatentStyles>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:楷体_GB2312;
panose-1:2 1 6 9 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:1 135135232 16 0 262144 0;}
@font-face
{font-family:"\@楷体_GB2312";
panose-1:2 1 6 9 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:1 135135232 16 0 262144 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:宋体;
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
mso-paper-source:0;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">Fac</span></strong><strong></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">ade</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">（外观）模式<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><o:p>&nbsp;</o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">旨在提供一个接口，使子系统更加容易使用<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><o:p>&nbsp;</o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">Before Fac</span></strong><strong></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">ade<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><o:p>&nbsp;<img src="http://www.blogjava.net/images/blogjava_net/coffee3236888/42479/o_Facade1.jpg" alt="" border="0" /><br />
</o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><br />
</span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">Using Fac</span></strong><strong></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">ade<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><o:p><img src="http://www.blogjava.net/images/blogjava_net/coffee3236888/42479/r_Facade2.gif" alt="" border="0" /></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><o:p>&nbsp;</o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">Fac</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">ade</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">模式 与<span lang="EN-US"> </span></span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">Adapter</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">模式<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">相似：为既存的类提供界面统一的接口，以供外部类调用<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">不同：</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">Fac</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">ade</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">模式的目的是简化调用关系<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">Adapter</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">模式是为不同的模块<span lang="EN-US">/</span>子系统提供一个统一的接口（支持多态），旨在将一个或多个已经存在的不统一的接口转化为另一个统一的接口<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<img src ="http://www.blogjava.net/coffee3236888/aggbug/300251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffee3236888/" target="_blank">等牛奶的咖啡</a> 2009-10-29 19:48 <a href="http://www.blogjava.net/coffee3236888/articles/300251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Adapter（适配器）模式</title><link>http://www.blogjava.net/coffee3236888/articles/300225.html</link><dc:creator>等牛奶的咖啡</dc:creator><author>等牛奶的咖啡</author><pubDate>Thu, 29 Oct 2009 10:37:00 GMT</pubDate><guid>http://www.blogjava.net/coffee3236888/articles/300225.html</guid><wfw:comment>http://www.blogjava.net/coffee3236888/comments/300225.html</wfw:comment><comments>http://www.blogjava.net/coffee3236888/articles/300225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffee3236888/comments/commentRss/300225.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffee3236888/services/trackbacks/300225.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C06%5Cclip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C06%5Cclip_editdata.mso" /><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles deflockedstate="false" latentstylecount="156">
</w:LatentStyles>
</xml><![endif]--><style>
<!-- /* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:楷体_GB2312;
panose-1:2 1 6 9 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:1 135135232 16 0 262144 0;}
@font-face
{font-family:"\@楷体_GB2312";
panose-1:2 1 6 9 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:modern;
mso-font-pitch:fixed;
mso-font-signature:1 135135232 16 0 262144 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
font-family:宋体;
mso-bidi-font-family:"Times New Roman";
color:black;
mso-font-kerning:1.0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
mso-paper-source:0;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US">Adapter</span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">（适配器）模式<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><o:p>&nbsp;</o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">旨在保留现有类所提供的服务，向客户提供接口，以满足客户的期望<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">即存在方法类，并可以提供给客户的需求接口<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><o:p>&nbsp;</o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">理解1<span lang="EN-US">.</span>类适配器<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">通过继承得到已存方法类的方法使用权去实现所需的客户接口<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><o:p><img src="http://www.blogjava.net/images/blogjava_net/coffee3236888/42479/o_Adapter.jpg" alt="" border="0" />&nbsp;</o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">理解2<span lang="EN-US">.</span>对象适配器<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">扩展一个客户所需的目标类，并把它委派给一个现有的方法类去实现<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<img src="http://www.blogjava.net/images/blogjava_net/coffee3236888/42479/o_Adapter1.jpg" alt="" border="0" />
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;"><br />
</span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">区别：<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><span>&nbsp;&nbsp; </span></span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">类适配器是扩展一个现有的类，并实现一个目标接口<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;" lang="EN-US"><span>&nbsp;&nbsp; </span></span></strong><strong><span style="font-size: 14pt; font-family: 楷体_GB2312;">对象适配器是扩展一个目标类，并把它委派给一个现有的类<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<img src ="http://www.blogjava.net/coffee3236888/aggbug/300225.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffee3236888/" target="_blank">等牛奶的咖啡</a> 2009-10-29 18:37 <a href="http://www.blogjava.net/coffee3236888/articles/300225.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Object类方法的分析</title><link>http://www.blogjava.net/coffee3236888/articles/299981.html</link><dc:creator>等牛奶的咖啡</dc:creator><author>等牛奶的咖啡</author><pubDate>Tue, 27 Oct 2009 13:50:00 GMT</pubDate><guid>http://www.blogjava.net/coffee3236888/articles/299981.html</guid><wfw:comment>http://www.blogjava.net/coffee3236888/comments/299981.html</wfw:comment><comments>http://www.blogjava.net/coffee3236888/articles/299981.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffee3236888/comments/commentRss/299981.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffee3236888/services/trackbacks/299981.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;提供程序设计的基础类<br />
</span><span style="color: #008080;">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;java.lang;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #008000;">&nbsp;*&nbsp;类层次结构的根类<br />
</span><span style="color: #008080;">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Object&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;10</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;12</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;注册一些本地方法，具体实现在DLL中<br />
</span><span style="color: #008080;">&nbsp;13</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">native</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;registerNatives();<br />
</span><span style="color: #008080;">&nbsp;15</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;registerNatives();<br />
</span><span style="color: #008080;">&nbsp;18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;19</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;21</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;返回此&nbsp;Object&nbsp;的运行时类<br />
</span><span style="color: #008080;">&nbsp;22</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;不可以被重写<br />
</span><span style="color: #008080;">&nbsp;23</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">native</span><span style="color: #000000;">&nbsp;Class</span><span style="color: #000000;">&lt;?&gt;</span><span style="color: #000000;">&nbsp;getClass();<br />
</span><span style="color: #008080;">&nbsp;25</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;27</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;返回对象的哈希码值<br />
</span><span style="color: #008080;">&nbsp;28</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">native</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;hashCode();<br />
</span><span style="color: #008080;">&nbsp;30</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;32</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;指示其他某个对象是否与此对象相等，比较的是对象的引用<br />
</span><span style="color: #008080;">&nbsp;33</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;有些子类会重写该方法，以使其具有比较对象内容的功能<br />
</span><span style="color: #008080;">&nbsp;34</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;子类在重写该方法的时候，通常要重写&nbsp;hashCode()&nbsp;方法<br />
</span><span style="color: #008080;">&nbsp;35</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;equals(Object&nbsp;obj)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;obj);<br />
</span><span style="color: #008080;">&nbsp;38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;39</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;41</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;创建并返回此对象的一个副本<br />
</span><span style="color: #008080;">&nbsp;42</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;这个方法被定义为&nbsp;protected&nbsp;,调用此方法需要实现&nbsp;Cloneable&nbsp;接口<br />
</span><span style="color: #008080;">&nbsp;43</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;否则抛出异常&nbsp;CloneNotSupportedException<br />
</span><span style="color: #008080;">&nbsp;44</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">native</span><span style="color: #000000;">&nbsp;Object&nbsp;clone()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;CloneNotSupportedException;<br />
</span><span style="color: #008080;">&nbsp;46</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;48</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;返回该对象的字符串表示，类名@对象哈希码的无符号十六进制<br />
</span><span style="color: #008080;">&nbsp;49</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;toString()&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;getClass().getName()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">@</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;Integer.toHexString(hashCode());<br />
</span><span style="color: #008080;">&nbsp;52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;53</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;55</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;唤醒在此对象监视器上等待的单个线程<br />
</span><span style="color: #008080;">&nbsp;56</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;不可以被重写<br />
</span><span style="color: #008080;">&nbsp;57</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">native</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;notify();<br />
</span><span style="color: #008080;">&nbsp;59</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;61</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;唤醒在此对象监视器上等待的所有线程<br />
</span><span style="color: #008080;">&nbsp;62</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;不可以被重写<br />
</span><span style="color: #008080;">&nbsp;63</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">native</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;notifyAll();<br />
</span><span style="color: #008080;">&nbsp;65</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;67</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;在其他线程调用此对象的&nbsp;notify()方法或notifyAll()&nbsp;方法，或者超过指定的时间量前，导致当前线程等待<br />
</span><span style="color: #008080;">&nbsp;68</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;不可以被重写<br />
</span><span style="color: #008080;">&nbsp;69</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">native</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;wait(</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;timeout)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;InterruptedException;<br />
</span><span style="color: #008080;">&nbsp;71</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;73</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;在其他线程调用此对象的&nbsp;notify()&nbsp;方法或&nbsp;notifyAll()<br />
</span><span style="color: #008080;">&nbsp;74</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;方法，或者其他某个线程中断当前线程，或者已超过某个实际时间量前，导致当前线程等待<br />
</span><span style="color: #008080;">&nbsp;75</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;不可以被重写<br />
</span><span style="color: #008080;">&nbsp;76</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;wait(</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;timeout,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;nanos)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;InterruptedException&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(timeout&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;IllegalArgumentException(</span><span style="color: #000000;">"</span><span style="color: #000000;">timeout&nbsp;value&nbsp;is&nbsp;negative</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;81</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(nanos&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;nanos&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">999999</span><span style="color: #000000;">)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;IllegalArgumentException(<br />
</span><span style="color: #008080;">&nbsp;84</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">nanosecond&nbsp;timeout&nbsp;value&nbsp;out&nbsp;of&nbsp;range</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;85</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;86</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;87</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(nanos&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">500000</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;(nanos&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;timeout&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">))&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;88</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timeout</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;89</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;90</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;91</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(timeout);<br />
</span><span style="color: #008080;">&nbsp;92</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;93</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;94</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;95</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;在其他线程调用此对象的&nbsp;notify()&nbsp;方法或&nbsp;notifyAll()&nbsp;方法前，导致当前线程等待<br />
</span><span style="color: #008080;">&nbsp;96</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;不可以被重写<br />
</span><span style="color: #008080;">&nbsp;97</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;98</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;wait()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;InterruptedException&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;99</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">100</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">101</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">102</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">103</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;对象的垃圾回收器调用此方法，具体实现的方法体由子类重写此方法<br />
</span><span style="color: #008080;">104</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">105</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;finalize()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Throwable&nbsp;{<br />
</span><span style="color: #008080;">106</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">107</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">108</span>&nbsp;</div>
<img src ="http://www.blogjava.net/coffee3236888/aggbug/299981.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffee3236888/" target="_blank">等牛奶的咖啡</a> 2009-10-27 21:50 <a href="http://www.blogjava.net/coffee3236888/articles/299981.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>