<?xml version="1.0" encoding="GB2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[Roof的咖啡屋]]></title>
<link>http://roofalison.zhmy.com/index.html</link>
<description><![CDATA[Roof的咖啡屋]]></description>
<item>
<title><![CDATA[我告诉自己，一定要赢！]]></title>
<link>http://roofalison.zhmy.com/archives/2008/150318.html</link>
<description><![CDATA[&nbsp; 我觉得自己需要艰难困苦的环境，这样才能磨练我的意志，所以我决定给自己加压。每天要过的像ACM中的竞赛一样充满高强度！来获得胜利！]]></description>
<author>roofyao</author>
<pubDate>2008-8-21 14:08:00</pubDate>
</item>
<item>
<title><![CDATA[I'm confused]]></title>
<link>http://roofalison.zhmy.com/archives/2008/149049.html</link>
<description><![CDATA[&nbsp; How to live a happy life in the world? What should I do? I feel confused.]]></description>
<author>roofyao</author>
<pubDate>2008-6-16 15:23:00</pubDate>
</item>
<item>
<title><![CDATA[就这样走着]]></title>
<link>http://roofalison.zhmy.com/archives/2008/145231.html</link>
<description><![CDATA[&nbsp;&nbsp; 就这样走着，风也走，雨也走，烈日当空时走，乌云满天时也走，这时候，什么值不值得似乎也都不重要了，看着一路景色越来越美，有那么天，走过一条蜿蜒曲折的小路，翻过了一座座曾经仰止的高山，穿过一丛又一丛的绿林，然后看到健康的父母，开心的姐和妹，看着我心爱的Alison过的幸福，看着远处的屋顶，袅袅为我而生的炊烟，看着头顶的霞光满天，那时的我必定泪流满面，哽咽无语。<BR>&nbsp;&nbsp;于是就这样满足的让步履匆匆，不拥抱奢望，不哀思埋怨，用双脚去换取无限可能吧。]]></description>
<author>roofyao</author>
<pubDate>2008-3-6 1:52:00</pubDate>
</item>
<item>
<title><![CDATA[我们的情人节]]></title>
<link>http://roofalison.zhmy.com/archives/2008/144273.html</link>
<description><![CDATA[<p><span style="font-size: 14pt;">想起了去年，我也是写过“情人节，在思念中度过”，那时我白天给笨蛋alison电话，打了近一个钟，不小心走到了龙井（离我家很远的地方）~</span></p>
<p><span style="font-size: 14pt;">今年我们一样是在思念中度过。只是，这思念和去年有所不同，更加成熟了。我想了很多，学会了很多。在这个世界上，有些幸福是由我来承载的，所以我会将幸福一肩挑起。</span></p>
<p><span style="font-size: 14pt;">在这个特别的日记里，祝她永远健康幸福……</span></p>]]></description>
<author>roofyao</author>
<pubDate>2008-2-14 14:39:00</pubDate>
</item>
<item>
<title><![CDATA[Java中实现C++的enum]]></title>
<link>http://roofalison.zhmy.com/archives/2008/144271.html</link>
<description><![CDATA[<span style="font-size: 12pt;">		以下是我开通的JAVA论坛，欢迎光临^_^<br>http://groups.gaoogle.com/group/roofalison/browse_thread/thread/ecd6ca274fdcab8e <br><br>感谢Nubix提醒我，原来Java已经有enum了，可能我手头的书和编译器是基于1.4的，没有看到，呵呵，不过下面的东西看看无妨。<br> C++里的enum有两个特性：<br> 1、静态、常量特性。<br> 2、类型检查。<br> 对于第一个，即是一旦定义了enum，内部数据将不可被修改，且也定义了存储空间，这在Java里当然是很容易实现的。<br> 现在以“星期”类型为例：<br> 对C++而言，可以这么定义：<br> enum Week {<br> &nbsp; MON = 1,<br> &nbsp; WED = 2,<br> &nbsp; TUE = 3,<br> &nbsp; THU = 4,<br> &nbsp; FRI = 5,<br> &nbsp; SAT = 6,<br> &nbsp; SUN = 7<br> };<br> 如果在Java中只实现enum第一个特性，那么可以用接口实现：<br> public interface Week {<br> &nbsp;&nbsp;&nbsp; int MON = 1,<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WED = 2,<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; TUE = 3,<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; THU = 4,<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; FRI = 5,<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SAT = 6,<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SUN = 7;<br> }<br>
由于接口使得内部数据默认强制为public static final类型，所以第一个特性可以轻易实现，但它不能实现第二个特性 ---
对于enum来说，赋值操作只能针对同一个类型，但对于Java的接口实现，由于内部成员类型为int，那么毫无疑问我们可以写int s =
Week.MON + Week.WED; 这样的操作，这不是合理的权限，所以我们必须对此做出限制。<br> 以下做法更好的实现了类型检查，防止了Week类型有不必要的权限，以此获得实现C++中enum的效果:<br> // 使Week为final类型，这样它就不可继承<br> public final class Week {<br> &nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Week day = Week.MON;<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; day = Week.FRI;<br> &nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp; public String toString() {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return _name;<br> &nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp; // <br> &nbsp;&nbsp;&nbsp; public final static Week MON = new Week("Monday");<br> &nbsp;&nbsp;&nbsp; public final static Week TUE = new Week("Tuesday");<br> &nbsp;&nbsp;&nbsp; public final static Week WED = new Week("Wednesday");<br> &nbsp;&nbsp;&nbsp; public final static Week THU = new Week("Thusday");<br> &nbsp;&nbsp;&nbsp; public final static Week FRI = new Week("Friday");<br> &nbsp;&nbsp;&nbsp; public final static Week SAT = new Week("Saturday");<br> &nbsp;&nbsp;&nbsp; public final static Week SUN = new Week("Sunday");<br> &nbsp;&nbsp;&nbsp; // 将构造方法修饰为private，这样用户不能任意new自己想要的Week，所以Week的成员限定为以上有限的七个<br> &nbsp;&nbsp;&nbsp; private Week(String aName) {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; _name = aName;<br> &nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp; private String _name;<br> }<br> 参考自：《thinking in java》</span>]]></description>
<author>roofyao</author>
<pubDate>2008-2-14 14:36:00</pubDate>
</item>
<item>
<title><![CDATA[We need to eat something to keep the winter chills]]></title>
<link>http://roofalison.zhmy.com/archives/2008/142775.html</link>
<description><![CDATA[<P>ShanTou has entered the coldest season, so we need some food to warm us up :)</P>
<P></P>
<DIV forimg="1"><IMG alt="" src="http://www.zhmy.com/admin123w4sdf23132342werwer/UploadFlies/2008-1/51023530413.jpg" border=0></DIV>
<P><STRONG>Should Eat:</STRONG></P>
<P><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </STRONG>1. Eat food that contains Niacin.(尼亚新)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Niacin helps stabilize the nervous system and boost the circulatory system. <SPAN style="COLOR: #ff0000">Milk</SPAN>, <SPAN style="COLOR: #ff0000">eggs</SPAN>, and <SPAN style="COLOR: #ff0000">cheese</SPAN> all contain a good quantity of niacin. Other abundent in niacin include <SPAN style="COLOR: #ff0000">animal livers</SPAN>, <SPAN style="COLOR: #ff0000">sesame</SPAN>, <SPAN style="COLOR: #ff0000">coffee</SPAN> and <SPAN style="COLOR: #ff0000">peannut</SPAN>, and as well as<SPAN style="COLOR: #ff0000">all-wheat product</SPAN>.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. Vitamin C.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vitamin C help people stay healthy. <SPAN style="COLOR: #ff0000">Leeks</SPAN>, <SPAN style="COLOR: #ff0000">carrots</SPAN> and <SPAN style="COLOR: #ff0000">spinach</SPAN> are good vegetables to eat, while fruits like <SPAN style="COLOR: #ff0000">peaches</SPAN>, <SPAN style="COLOR: #ff0000">apricots</SPAN> and <SPAN style="COLOR: #ff0000">papaya</SPAN> can keep you warm.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. Spicy seasoning.(加香料的调味料)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It can help keep cold temperatures away. <SPAN style="COLOR: #ff0000">Pepper powder</SPAN> is recommended.</P>
<P><STRONG>Not Eat:</STRONG></P>
<P><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</STRONG>1. Don't eat <SPAN style="COLOR: #00ccff">cold drink</SPAN> or<SPAN style="COLOR: #00ccff; BACKGROUND-COLOR: #ffffff">icy dessert</SPAN>.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. Don't eat <SPAN style="COLOR: #00ccff">raw foods</SPAN>.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. Don' <SPAN style="COLOR: #00ccff">stay hungry</SPAN><IMG src="http://img.baidu.com/hi/face/i_f01.gif"></P>
<P><SPAN style="COLOR: #ff00ff; BACKGROUND-COLOR: #00ccff">PS: Read after chinadaily.</SPAN></P>]]></description>
<author>roofyao</author>
<pubDate>2008-1-5 10:22:00</pubDate>
</item>
<item>
<title><![CDATA[海上钢琴师]]></title>
<link>http://roofalison.zhmy.com/archives/2007/142102.html</link>
<description><![CDATA[<P>&nbsp; 常常在想，如果我高一的时候就接触IOI，那是怎样愉快的一件事情，但这么想是没有意义的。其实我已经够幸福了，因为大一我就认识了ACM，没有做出什么成绩来，是我不够用心。</P>
<P>&nbsp; 其实，为什么我喜欢比赛呢？这个我也说不大清楚，但重要的一点是：并不是我多么想拿什么什么奖，不是！</P>
<P>&nbsp; 我喜欢比赛的一个原因，在于，我知道自己的水平，我可以去参加比赛，我知道自己的底线，至少拿三等，可以冲二等，但再怎么狗屎运也不能拿一等，除非我拿出更多的努力来，这些，我清楚。另一个，我可以输，也可以赢，给自己订个标准，然后了解输赢，但总的来说。我可以知道，在这场比赛里，我是loser，还是winner，我可以冷静的参加，也可以充满狂热，可以淡然，可以激动，这里有太多的魅力，所以，参加acm，很开心。你可以痛苦的赢，痛快的输，你知道怎么付出，一切都是值得的，只要能参赛就好。管它什么输和赢。</P>
<P>&nbsp; 但是现在，我陷入泥潭，这个泥潭不仅是可观环境，更来自自身，我不知道自己的底线在哪里，不知道前方是如何的，可以选择的路太多，我不知道如何选择，如同《海上钢琴师》所言：在船上，一切是有限的，你可以在这里，通过有限的钢琴键数演奏出无穷无尽的美妙音乐来，但到了大陆，一切都是无穷无尽的。 我曾经思索这样一种思路，是否正确，是一种思悟，还是一种逃避理由。 想不到，我也成了出现这种想法的人，可笑！</P>
<P> </P>]]></description>
<author>roofyao</author>
<pubDate>2007-12-20 20:54:00</pubDate>
</item>
<item>
<title><![CDATA[还是决定继续保留这个博客]]></title>
<link>http://roofalison.zhmy.com/archives/2007/142101.html</link>
<description><![CDATA[<P>&nbsp; 因为它记载着一些东西，我不应该放弃它，让它留着，不至于长期不用而被关闭，人啊，总是有点感情^_^</P>]]></description>
<author>roofyao</author>
<pubDate>2007-12-20 20:49:00</pubDate>
</item>
<item>
<title><![CDATA[我搬家啦，搬到百度空间]]></title>
<link>http://roofalison.zhmy.com/archives/2007/135901.html</link>
<description><![CDATA[<P><A href="http://hi.baidu.com/roofalison">http://hi.baidu.com/roofalison</A></P>
<P>欢迎继续支持我^_^</P>]]></description>
<author>roofyao</author>
<pubDate>2007-8-10 21:40:00</pubDate>
</item>
<item>
<title><![CDATA[MVC模式(转）]]></title>
<link>http://roofalison.zhmy.com/archives/2007/135494.html</link>
<description><![CDATA[<DIV><FONT color=#ff0000>什么是MVC设计模式，如何使用MVC</FONT></DIV>
<br/>
<DIV><FONT color=#ff0000><FONT color=#000000>MVC是Model,View,Controller的缩写,MVC是Application开发的设计模式，也就是大家所知道的Model2.在MVC的设计模式中，它包括三类对象：（1）模型（Model）对象：是应用程序的主体部分。（2）视图（View）对象：是应用程序中负责生成用户界面的部分。（3）控制器（Control）对象：是根据用户的输入，控制用户界面数据显示及更新Model对象状态的部分。即要求在Application开发中你把商业逻辑，界面显示，数据分离。</FONT></FONT></DIV>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#000000>MVC应用程序总是由三个部分组成.Event(事件)导致Controller改变Model或View,或者同时改变两者.只要Controller改变了Models的数据或者属性，所有依赖的View都会自动更新.类似的,只要Controller改变了View，View会从潜在的Model中获取数据来刷新自己</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#000000>MVC模式是一个复杂的架构模式,其实现也显得非常复杂,但多种设计模式结合在一起,使MVC模式的实现变得相对简单易行.Views可以看作一棵树,显然可以用Composite Pattern来实现.Views和Models之间的关系可以用Observer Pattern体现.Controller控制Views的显示,可以用Strategy Pattern实现.Model通常是一个调停者,可采用Mediator Pattern来实现.</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#000000>Java开发Web Application有几种符合MVC设计模式的开发方式。</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#000000>1:Jsp+Servlet+JavaBean(EJB)</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#000000>2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#000000>3:TDK(Turbine，Velocity...)</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#000000>4:Xsp</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#000000>5:Jsp+Struts+JavaBean(EJB)</FONT></STRONG></P>
<br/>
<br/>
<br/>
<br/>
<DIV><STRONG><FONT color=#ff0000>从Java类库看设计模式 -- MVC模式</FONT></STRONG></DIV>
<br/>
<DIV>
<P class=content>有了前面诸多设计模式的基础，这儿可以提出一个比较特殊的模式MVC。MVC并不属于GOF的23个设计模式之列，但是它在GOF的书中作为一个重要的例子被提出来，并给予了很高的评价。一般的来讲，我们认为GOF的23个模式是一些中级的模式，在它下面还可以抽象出一些更为一般的低层的模式，在其上也可以通过组合来得到一些高级的模式。MVC就可以看作是一些模式进行组合之后的结果（实际上，MVC的出现要早于设计模式的提出，这而只是对它在设计模式的基础上进行在分析）。如果没有前面的基础，理解MVC或许会有一些困难。<BR>MVC模式<BR>MVC模式比较的特别，它含义比较的广，涉及的层面也不仅仅是设计这一块，不好简单的把它归为设计模式。当然，它主要还是作为一个设计的概念被提到的，而且在Java体系中，MVC有着至关重要的作用。这儿提的是Java中的设计模式，当然不好拉了它不讲了。</P>
<P>关于MVC的来龙去脉，这儿就不再讲了。这里主s要讲两个方面的：作为设计模式的MVC和作为体系结构模式的MVC。</P>
<P>所谓MVC，指的是一种划分系统功能的方法，它将一个系统划分为三个部分：</P>
<P>模型（Model）：封装的是数据源和所有基于对这些数据的操作。在一个组件中，Model往往表示组件的状态和操作状态的方法。</P>
<P>视图（View）：封装的是对数据源Model的一种显示。一个模型可以由多个视图，而一个视图理论上也可以同不同的模型关联起来。</P>
<P>控制器（Control）：封装的是外界作用于模型的操作。通常，这些操作会转发到模型上，并调用模型中相应的一个或者多个方法。一般Controller在Model和View之间起到了沟通的作用，处理用户在View上的输入，并转发给Model。这样Model和View两者之间可以做到松散耦合，甚至可以彼此不知道对方，而由Controller连接起这两个部分。</P>
<P>有了前面介绍的诸多模式之后，就可以很容易的通过模式来解释MVC的内在行为了。前面说过，在设计模式中，MVC实际上是一个比较高层的模式，它由多个更基本的设计模式组合而成，Model-View的关系实际上是Observer模式，模型的状态和试图的显示相互响应，而View-Controller则是由Strategy模式所描叙的，View用一个特定的Controller的实例来实现一个特定的响应策略，更换不同的Controller，可以改变View对用户输入的响应。而其它的一些设计模式也很容易组合到这个体系中。比如，通过Composite模式，可以将多个View嵌套组合起来；通过FactoryMethod模式来指定View的Controller，等等。</P>
<P>使用MVC的好处，一方面，分离数据和其表示，使得添加或者删除一个用户视图变得很容易，甚至可以在程序执行时动态的进行。Model和View能够单独的开发，增加了程序了可维护性，可扩展性，并使测试变得更为容易。另一方面，将控制逻辑和表现界面分离，允许程序能够在运行时根据工作流，用户习惯或者模型状态来动态选择不同的用户界面。</P>
<P>Swing号称是完全按照MVC的思路来进行设计的。在设计开始前，Swing的希望能够达到的目标就包括：</P>
<P>模型驱动（Model-Driven）的编程方式。<BR>提供一套单一的API，但是能够支持多种视感（look-and-feel），为用户提供不同的界面。</P>
<P>很自然的可以发现，使用MVC模式能够有助于实现上面的这两个目标。</P>
<P>严格的说，Swing中的MVC实际上是MVC的一个变体：M-VC。 Swing中只显示的定义了Model接口，而在一个UI对象中集成了视图和控制器的部分机制。View和Control比较松散的交叉组合在一起，而更多的控制逻辑是在事件监听者部分引入的。</P>
<P>但是，这并没有妨碍在Swing中体现MVC的精髓。事实上，在Swing的开发初期，Swing确实是按照标准的MVC模式来设计的，但是很快的问题就出现了：View和Controller实际上是紧密耦合的，很难作出一个能够适应不同View的一般化的Controller来，而且，一般也没有很大的必要。</P>
<P>在Swing中基本上每一个组件都会有对应的Model对象。但其并不是一一对应的，一个Model接口可以为多个Swing对向服务，例如：JProgressBar，JScrollBar，JSlider这三个组件使用的都是BoundedRangeModel接口。这种模型的共享更能够从分的体现MVC的内涵。除了Model接口外，为了实现多个视感间的自由切换，每个Swing组件还包含一个UI接口--也就是View-Controller，负责对组件的绘制和接受用户输入。</P>
<P>Model-View是Subject和Obverser的关系，因而，模型的改变必须要在UI对象中体现出来。Swing使用了JavaBeans的事件模型来实现这种通知机制。具体而言，有两种实现办法，一是仅仅通知事件监听者状态改变了，然后由事件监听者向模型提取必要的状态信息。这种机制对于事件频繁的组件很有效。另外的一种办法是模型向监听者发送包含了已改变的状态信息的通知给UI。这两种方法根据其优劣被分别是现在不同的组件中。比如在JScollBar中使用的是第一种方法，在JTable中使用的是第二种方法。而对Model而言，为了能够支持多个View，它并不知道具体的每一个View。它维护一个对其数据感兴趣的Obverser的列表，使得当数据改变的时候，能够通知到每一个Swing组件对象。</P>
<P>上面讲到的是作为设计模式的MVC。而在J2EE中，Sun更是将MVC提升到了一个体系结构模式的高度，这儿的MVC的含义就更为广泛了。与Swing中不同的是，在这儿MVC的各个部件不再是单纯的类或者接口，而是应用程序的一个组成部分！</P>
<P>在J2EE Blueprint中，Sun推荐了一种基于MVC的J2EE程序的模式。对于企业级的分布式应用程序而言，它更需要支持多种形式的用户接口。比如，网上商店需要一个HTML的界面来同网上的客户打交道，WML的界面可以提供给无线用户，管理者可能需要传统的基于Swing的应用程序来进行管理，而对对商业伙伴，基于XML的Web服务可能对他们更为方便。</P>
<P>MVC无疑是这样一个问题的有效的解决方法，通过在控制和显示逻辑分离出核心的数据存取功能，形成一个Model模块，能够让多种视图来共享这个Model。</P>
<P>在J2EE中有几个核心的技术，JSP，JavaBean，Servlet，EJB，SessionBean，EntityBean构成了J2EE构架的基石。JSP能够生成HTML，WML甚至XML，它对应于Web应用程序中的View部分。EJB作为数据库与应用程序的中介，提供了对数据的封装。一般EntityBean封装的是数据，SessionBean是封装的是对数据的操作。这两个部分合起来，对应于Web应用程序的Model部分。在技术上，JSP能够直接对EJB进行存取，但这并不是好办法，那样会混淆程序中的显示逻辑和控制逻辑，使得JSP的重用性能降低。这时候有两种解决方法，通过JavaBean或者Servlet作为中介的控制逻辑，对EJB所封装的数据进行存取。这时，JavaBean或者Servlet对应于Web引用程序中的Controller部分。两种类型的Controller各有其优缺点：JSP同Servlet的交互不容易规范化，使得交互的过程变得复杂，但是Servlet可以单独同用户交互，实际上JSP的运行时状态就是Servlet；而由于JavaBean的规范性，JSP同JavaBean的交互很容易，利用JavaBean的get/set方法，JSP不需要过多的语句就可以完成数据的存取，这能够让JSP最大限度的集中在其视图功能上，而且，在桌面应用程序中使用JavaBean也很容易，而用Servlet就相对麻烦许多。根据不同的问题背景，可以选取不同的Controller，有时候也可以两者混合使用，或者直接在Servlet中调用JavaBean。</P>
<P>在J2EE中，MVC是一个大的框架，这时我们往往把它不再看作为设计模式，而是作为体系结构模式的一个应用了。</P>
<P>总结<BR>在这篇文章中，从设计的角度，对Java的类库进行了一些分析，并着重于设计模式在其中的使用问题。相信大家看了之后，不论对Java类库本身，还是设计模式，都应该有了一个更深层次的了解。当然，Java类库是一个非常庞大的东西，还有着许多设计精良的结构。因而，对Java源代码的研究，不论对于编码还是设计，都是很有裨益的。本人接触设计模式的时间并不很长，对其的理解可能会有一些偏差，如有谬误的地方，还请能够提出，大家能够共同的探讨。</P>
<P>需要说明的是，对模式的描叙实际上是有一套完整的规格（或者语言）来进行的，涉及到模式的意图（Intent），问题描叙（Problem），背景（Context），约束（Force），解决方案（Solution），结果（Resulting Context）等等。但这儿为了叙述的方便，并没有将它们一一列举。如果需要对模式有详细系统的研究，就应该对这些规格叙述有更深入的了解。</P>
<P>摘自IBM DeveloperWorks</P></DIV>
<br/>]]></description>
<author>roofyao</author>
<pubDate>2007-8-3 13:41:00</pubDate>
</item>

</channel>
</rss>