﻿<?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/oceanqtt/category/2258.html</link><description>雨季过后，是蘑菇生长的季节</description><language>zh-cn</language><lastBuildDate>Thu, 13 Mar 2008 06:53:25 GMT</lastBuildDate><pubDate>Thu, 13 Mar 2008 06:53:25 GMT</pubDate><ttl>60</ttl><item><title>设置ERRORLEVEL--指定bat的返回值</title><link>http://www.blogjava.net/oceanqtt/archive/2008/01/18/176223.html</link><dc:creator>蘑菇</dc:creator><author>蘑菇</author><pubDate>Fri, 18 Jan 2008 07:16:00 GMT</pubDate><guid>http://www.blogjava.net/oceanqtt/archive/2008/01/18/176223.html</guid><wfw:comment>http://www.blogjava.net/oceanqtt/comments/176223.html</wfw:comment><comments>http://www.blogjava.net/oceanqtt/archive/2008/01/18/176223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oceanqtt/comments/commentRss/176223.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oceanqtt/services/trackbacks/176223.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 设置ERRORLEVEL的正确方法<br>set AAA=234 <br>exit /B %AAA%&nbsp;&nbsp;<a href='http://www.blogjava.net/oceanqtt/archive/2008/01/18/176223.html'>阅读全文</a><img src ="http://www.blogjava.net/oceanqtt/aggbug/176223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oceanqtt/" target="_blank">蘑菇</a> 2008-01-18 15:16 <a href="http://www.blogjava.net/oceanqtt/archive/2008/01/18/176223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于代码重构的思考</title><link>http://www.blogjava.net/oceanqtt/archive/2007/12/10/166743.html</link><dc:creator>蘑菇</dc:creator><author>蘑菇</author><pubDate>Mon, 10 Dec 2007 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/oceanqtt/archive/2007/12/10/166743.html</guid><wfw:comment>http://www.blogjava.net/oceanqtt/comments/166743.html</wfw:comment><comments>http://www.blogjava.net/oceanqtt/archive/2007/12/10/166743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oceanqtt/comments/commentRss/166743.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oceanqtt/services/trackbacks/166743.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于重构的一点个人看法&nbsp;&nbsp;<a href='http://www.blogjava.net/oceanqtt/archive/2007/12/10/166743.html'>阅读全文</a><img src ="http://www.blogjava.net/oceanqtt/aggbug/166743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oceanqtt/" target="_blank">蘑菇</a> 2007-12-10 17:55 <a href="http://www.blogjava.net/oceanqtt/archive/2007/12/10/166743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>composition（复合）</title><link>http://www.blogjava.net/oceanqtt/archive/2006/04/06/39636.html</link><dc:creator>蘑菇</dc:creator><author>蘑菇</author><pubDate>Thu, 06 Apr 2006 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/oceanqtt/archive/2006/04/06/39636.html</guid><wfw:comment>http://www.blogjava.net/oceanqtt/comments/39636.html</wfw:comment><comments>http://www.blogjava.net/oceanqtt/archive/2006/04/06/39636.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oceanqtt/comments/commentRss/39636.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oceanqtt/services/trackbacks/39636.html</trackback:ping><description><![CDATA[composition（复合）是在一个类型的对象包含另一个类型的对象时，类型之间的关系。<br />例如：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_14_20_Open_Image" onclick="this.style.display='none'; Codehighlighter1_14_20_Open_Text.style.display='none'; Codehighlighter1_14_20_Closed_Image.style.display='inline'; Codehighlighter1_14_20_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_14_20_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_14_20_Closed_Text.style.display='none'; Codehighlighter1_14_20_Open_Image.style.display='inline'; Codehighlighter1_14_20_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Address </span><span id="Codehighlighter1_14_20_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_14_20_Open_Text"><span style="COLOR: #000000">{ <img src="http://www.blogjava.net/images/dot.gif" /> }</span></span><span style="COLOR: #000000">; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> where someone lives</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_65_71_Open_Image" onclick="this.style.display='none'; Codehighlighter1_65_71_Open_Text.style.display='none'; Codehighlighter1_65_71_Closed_Image.style.display='inline'; Codehighlighter1_65_71_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_65_71_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_65_71_Closed_Text.style.display='none'; Codehighlighter1_65_71_Open_Image.style.display='inline'; Codehighlighter1_65_71_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> PhoneNumber </span><span id="Codehighlighter1_65_71_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_65_71_Open_Text"><span style="COLOR: #000000">{ <img src="http://www.blogjava.net/images/dot.gif" /> }</span></span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_88_252_Open_Image" onclick="this.style.display='none'; Codehighlighter1_88_252_Open_Text.style.display='none'; Codehighlighter1_88_252_Closed_Image.style.display='inline'; Codehighlighter1_88_252_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_88_252_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_88_252_Closed_Text.style.display='none'; Codehighlighter1_88_252_Open_Image.style.display='inline'; Codehighlighter1_88_252_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Person </span><span id="Codehighlighter1_88_252_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_88_252_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　<img src="http://www.blogjava.net/images/dot.gif" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　std::string name; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> composed object</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">　　Address address; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> ditto</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">　　PhoneNumber voiceNumber; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> ditto</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">　　PhoneNumber faxNumber; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> ditto</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">;</span></div>composition（复合）有两个含意。composition（复合）既意味着 "has-a"（有一个），又意味着 "is-implemented-in-terms-of"（是根据……实现的）。这是因为你要在你的软件中处理两个不同的领域。你程序中的一些 objects对应你所模拟的世界里的东西，例如，people,vehicles,video frames等等。这样的 objects是 application domain（应用领域）的部分。另外的 objects纯粹是 implementation artifacts（实现的产物），例如，buffers（<a class="bluekey" href="http://www.yesky.com/key/2284/582284.html" target="_blank">缓冲区</a>），mutexes（互斥体），search trees（搜索树）等等。这些各类 objects定义应你的软件的 implementation domain（实现领域）。当 composition（复合）发生在 application domain（应用领域）的 objects之间，它表达一个 has-a（有一个）的关系，当它发生在 implementation domain（实现领域），它表达一个 is-implemented-in-terms-of（是根据……实现的）的关系<br /><font size="1"><br />来自：<a href="http://dev.yesky.com">http://dev.yesky.com</a></font><img src ="http://www.blogjava.net/oceanqtt/aggbug/39636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oceanqtt/" target="_blank">蘑菇</a> 2006-04-06 17:20 <a href="http://www.blogjava.net/oceanqtt/archive/2006/04/06/39636.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>delegation（委托）</title><link>http://www.blogjava.net/oceanqtt/archive/2006/04/06/39614.html</link><dc:creator>蘑菇</dc:creator><author>蘑菇</author><pubDate>Thu, 06 Apr 2006 08:25:00 GMT</pubDate><guid>http://www.blogjava.net/oceanqtt/archive/2006/04/06/39614.html</guid><wfw:comment>http://www.blogjava.net/oceanqtt/comments/39614.html</wfw:comment><comments>http://www.blogjava.net/oceanqtt/archive/2006/04/06/39614.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/oceanqtt/comments/commentRss/39614.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oceanqtt/services/trackbacks/39614.html</trackback:ping><description><![CDATA[
		<p dir="ltr" style="MARGIN-RIGHT: 0px" align="left">
				<font style="BACKGROUND-COLOR: #ffffff">
						<font color="#000080">
								<span style="FONT-WEIGHT: bold">Delegation</span> 定义：<br /></font>
				</font>
				<font size="5">D</font>elegation is a way of making composition as powerful for reuse as inheritance [Lie86, JZ91]. In delegation, two objects are involved in handling a request: a receiving object delegates operations to its delegate. This is analogous to subclasses deferring requests to parent classes. But with inheritance, an inherited operation can always refer to the receiving object through the this member variable in C++ and self in Smalltalk. <span style="FONT-WEIGHT: bold">To achieve the same effect with delegation, the receiver passes itself to the delegate to let the delegated operation refer to the receiver</span><br /><br /><font color="#000080">我的理解：</font><br /><font face="MingLiU">    </font><span>A 把外界传来的讯息</span><span lang="EN-US" style="FONT-FAMILY: MingLiU; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-fareast-font-family: 宋体">" </span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-ascii-font-family: MingLiU; mso-hansi-font-family: 'Times New Roman'">转送</span><span lang="EN-US" style="FONT-FAMILY: MingLiU; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-fareast-font-family: 宋体">" </span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-ascii-font-family: MingLiU; mso-hansi-font-family: 'Times New Roman'">给</span><span lang="EN-US" style="FONT-FAMILY: MingLiU; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-fareast-font-family: 宋体">B </span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-ascii-font-family: MingLiU; mso-hansi-font-family: 'Times New Roman'">﹐由</span><span lang="EN-US" style="FONT-FAMILY: MingLiU; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-fareast-font-family: 宋体">B </span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-ascii-font-family: MingLiU; mso-hansi-font-family: 'Times New Roman'">处理之﹐我们称</span><span lang="EN-US" style="FONT-FAMILY: MingLiU; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-fareast-font-family: 宋体">A </span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-ascii-font-family: MingLiU; mso-hansi-font-family: 'Times New Roman'">委托</span><span lang="EN-US" style="FONT-FAMILY: MingLiU; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-fareast-font-family: 宋体">B </span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.3pt; mso-fareast-language: ZH-CN; mso-ascii-font-family: MingLiU; mso-hansi-font-family: 'Times New Roman'">。当一些事物互相沟通分工合作时常用妥托观念。<br /><br />值得注意的是：<br /><font style="BACKGROUND-COLOR: #7fffd4">delegate -----&gt; delegatee <br />     ^                  | <br />     |   indirection    | <br />     -------------------- <br /><font style="BACKGROUND-COLOR: #ffffff">delegate将自己（对象）传给delegatee，使delegatee可以通过该对象执行那些委托的操作。<br /><br />举个例子：<br />    在某个框架的组成部分中，对窗口设计，可以支持任意形状的窗口。<br />    开始的时候考虑是不是使用子类来实现，乍一看似乎是比较好的，但是考虑到对窗口来说形状只能是它的一项属性：窗口不是一“种”形状——窗口“有”形状。<font size="1">（引自《The Pragmatic Programmer》）</font><font size="3">所以采用委托的方式。<br />    这时，我们定义一个被委托（delegatee）类Shape和一个委托（delegate）类window。<br /><font style="BACKGROUND-COLOR: #ffc0cb">public abstract class Shape{                  <br />    //....                                    <br />    public abstract boolean overlaps(Shape s);<br />    public abstract int getArea();            <br />}                                             <br /><br />public class window{                          <br />    private Shape shape;                      <br />    public window(Shape shape){               <br />        this.shape = shape;                   <br />        ...                                   <br />    }                                         <br />    public void setShape(Shape shape){        <br />        this.shape = shape;                   <br />        ...                                   <br />    }                                         <br />    public boolean overlaps(window w){        <br />        return shape.overlaps(w);             <br />    }                                         <br />    public int getArea(){                     <br />        return shape.getArea();               <br />    }                                         <br />}                                             <br /></font><font size="1">class引自《The Pragmatic Programmer》）</font><br /></font></font><br /></font></span></p>
<img src ="http://www.blogjava.net/oceanqtt/aggbug/39614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oceanqtt/" target="_blank">蘑菇</a> 2006-04-06 16:25 <a href="http://www.blogjava.net/oceanqtt/archive/2006/04/06/39614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于回车换行的判断</title><link>http://www.blogjava.net/oceanqtt/archive/2005/09/07/12304.html</link><dc:creator>蘑菇</dc:creator><author>蘑菇</author><pubDate>Wed, 07 Sep 2005 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/oceanqtt/archive/2005/09/07/12304.html</guid><wfw:comment>http://www.blogjava.net/oceanqtt/comments/12304.html</wfw:comment><comments>http://www.blogjava.net/oceanqtt/archive/2005/09/07/12304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oceanqtt/comments/commentRss/12304.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oceanqtt/services/trackbacks/12304.html</trackback:ping><description><![CDATA[<FONT color=#000080>在windows系统下，回车换行符号是“\r\n”，但是在Linux等系统下是没有“\r”符号的。在解析文本或其他格式的文件内容时，常常要碰到判定回车换行的地方，这个时候就要注意既要判定“\r\n”又要判定“\n”。<BR>虽然可以直接取得当前系统的回车换行符号来使用，但是文件并不一定是在当前系统下生成的，所以保证两种回车换行符号的兼容判定是必需的。</FONT><img src ="http://www.blogjava.net/oceanqtt/aggbug/12304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oceanqtt/" target="_blank">蘑菇</a> 2005-09-07 11:28 <a href="http://www.blogjava.net/oceanqtt/archive/2005/09/07/12304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SD心得之画图</title><link>http://www.blogjava.net/oceanqtt/archive/2005/08/10/9721.html</link><dc:creator>蘑菇</dc:creator><author>蘑菇</author><pubDate>Wed, 10 Aug 2005 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/oceanqtt/archive/2005/08/10/9721.html</guid><wfw:comment>http://www.blogjava.net/oceanqtt/comments/9721.html</wfw:comment><comments>http://www.blogjava.net/oceanqtt/archive/2005/08/10/9721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oceanqtt/comments/commentRss/9721.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oceanqtt/services/trackbacks/9721.html</trackback:ping><description><![CDATA[SD描述挺烦琐的，怎么办？画图呗。直接易懂，还不用担心会错意。<BR>各种图就登场啦。先是什么系统结构图，再来点数据结构图，类图，类关系图，线程图等等都少不了啦。不过我这次学到一种画法挺好的。<BR>详细情况参见下图。<IMG height=19 src="http://www.blogjava.net/Emoticons/teeth_smile.gif" width=19 border=0><BR><IMG height=398 alt="新建 位图图像.bmp" src="http://www.blogjava.net/images/blogjava_net/oceanqtt/新建%20位图图像.bmp" width=454 border=0><img src ="http://www.blogjava.net/oceanqtt/aggbug/9721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oceanqtt/" target="_blank">蘑菇</a> 2005-08-10 15:37 <a href="http://www.blogjava.net/oceanqtt/archive/2005/08/10/9721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模块中的类划分</title><link>http://www.blogjava.net/oceanqtt/archive/2005/07/22/8197.html</link><dc:creator>蘑菇</dc:creator><author>蘑菇</author><pubDate>Fri, 22 Jul 2005 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/oceanqtt/archive/2005/07/22/8197.html</guid><wfw:comment>http://www.blogjava.net/oceanqtt/comments/8197.html</wfw:comment><comments>http://www.blogjava.net/oceanqtt/archive/2005/07/22/8197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oceanqtt/comments/commentRss/8197.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oceanqtt/services/trackbacks/8197.html</trackback:ping><description><![CDATA[<P><FONT color=#0000ff size=1>假设有文件A，模块功能将A的内容抽取一部分出来，写入文件B。<BR>不加思索我就把所有内容写到一个类里面去了。后来和同事讨论，结论是功能耦合太紧密<IMG height=20 src="http://www.blogjava.net/Emoticons/QQ/21.gif" width=20 border=0>，所以又拆分成3个类（读，解析，写），再加一个Control。但是我还是有些疑问，这个功能太独立了，其他地方都不会使用到，而且也挺简单，虽然分开之后更符合建模模式，但是一定要分得这么细么？当然，如果其他地方要用到，我肯定会把他们分开的啦。<BR>本来还费了点心思，写了个handler，分开了之后完全都没有用了，有点伤心呢。<IMG height=19 src="http://www.blogjava.net/Emoticons/QQ/22.gif" width=19 border=0></FONT></P><img src ="http://www.blogjava.net/oceanqtt/aggbug/8197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oceanqtt/" target="_blank">蘑菇</a> 2005-07-22 17:55 <a href="http://www.blogjava.net/oceanqtt/archive/2005/07/22/8197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>