﻿<?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/aoneany/category/42822.html</link><description>欲上天堂，先下地狱</description><language>zh-cn</language><lastBuildDate>Wed, 25 Nov 2009 12:40:35 GMT</lastBuildDate><pubDate>Wed, 25 Nov 2009 12:40:35 GMT</pubDate><ttl>60</ttl><item><title>装饰者模式(Decorator)</title><link>http://www.blogjava.net/aoneany/articles/303530.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Tue, 24 Nov 2009 14:46:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/303530.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/303530.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/303530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/303530.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/303530.html</trackback:ping><description><![CDATA[<p>意图：动态地给一个对象添加一些额外的职责。</p>
<p>适用性：</p>
<li>在不影响其他对象的情况下，以动态、透明的方式给单个对象添加职责。
<li>处理那些可以撤消的职责。
<li>当不能采用生成子类的方法进行扩充时。一种情况是，可能有大量独立的扩展，为支持每一种组合将产生大量的子类，使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏，或类定义不能用于生成子类。
<p>&nbsp;</p>
<p><img style="width: 547px; height: 250px" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/DeginerPattern/Decorator.jpg" width="547" height="250" /></p>
</li>
<img src ="http://www.blogjava.net/aoneany/aggbug/303530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-11-24 22:46 <a href="http://www.blogjava.net/aoneany/articles/303530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工厂模式</title><link>http://www.blogjava.net/aoneany/articles/303396.html</link><dc:creator>沙漠中的鱼</dc:creator><author>沙漠中的鱼</author><pubDate>Mon, 23 Nov 2009 14:56:00 GMT</pubDate><guid>http://www.blogjava.net/aoneany/articles/303396.html</guid><wfw:comment>http://www.blogjava.net/aoneany/comments/303396.html</wfw:comment><comments>http://www.blogjava.net/aoneany/articles/303396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoneany/comments/commentRss/303396.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoneany/services/trackbacks/303396.html</trackback:ping><description><![CDATA[<p><strong>工厂方法</strong></p>
<p>意图：定义一个用于创建对象的接口，让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。</p>
<p>适应性：</p>
<li>当一个类不知道它所必须创建的对象的类的时候。
<li>当一个类希望由它的子类来指定它所创建的对象的时候。
<li>当类将创建对象的职责委托给多个帮助子类中的某一个，并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
<p>类图</p>
<p><img style="width: 570px; height: 303px" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/DeginerPattern/FactoryMethod.jpg" width="570" height="303" /></p>
<p><strong>抽像工厂</strong></p>
<p>意图：提供一个创建一系列相关或相互依赖对象的接口，而无需指定它们具体的类。</p>
<p>适用性：</p>
<li>一个系统要独立于它的产品的创建、组合和表示时。
<li>一个系统要由多个产品系列中的一个来配置时。
<li>当你要强调一系列相关的产品对象的设计以便进行联合使用时。
<li>当你提供一个产品类库，而只想显示它们的接口而不是实现时。
<p>类图</p>
<p><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/aoneany/DeginerPattern/AbstractFactory.jpg" /></p>
<p>&nbsp;</p>
</li>
<img src ="http://www.blogjava.net/aoneany/aggbug/303396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoneany/" target="_blank">沙漠中的鱼</a> 2009-11-23 22:56 <a href="http://www.blogjava.net/aoneany/articles/303396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>