﻿<?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-jerry-文章分类-设计模式</title><link>http://www.blogjava.net/Cages/category/50861.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 19 Feb 2012 15:29:48 GMT</lastBuildDate><pubDate>Sun, 19 Feb 2012 15:29:48 GMT</pubDate><ttl>60</ttl><item><title>工厂方法模式</title><link>http://www.blogjava.net/Cages/articles/370302.html</link><dc:creator>疯狂的蜗牛</dc:creator><author>疯狂的蜗牛</author><pubDate>Sun, 19 Feb 2012 13:53:00 GMT</pubDate><guid>http://www.blogjava.net/Cages/articles/370302.html</guid><wfw:comment>http://www.blogjava.net/Cages/comments/370302.html</wfw:comment><comments>http://www.blogjava.net/Cages/articles/370302.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Cages/comments/commentRss/370302.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Cages/services/trackbacks/370302.html</trackback:ping><description><![CDATA[操作接口：
<div>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.factoryMethod.imp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">/**</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;* <span style="color: #8cafcc">@author</span> <span style="text-decoration: underline">jerry</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*/</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">public</span> <span style="color: #a10066">interface</span> interfaceTest {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> <span style="text-decoration: underline">test</span>(String name);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">实现类A：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.factoryMethod.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.factoryMethod.imp.interfaceTest;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">/**</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;* <span style="color: #8cafcc">@author</span> <span style="text-decoration: underline">jerry</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*/</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">public</span> <span style="color: #a10066">class</span> ImplA <span style="color: #a10066">implements</span> interfaceTest {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(String name){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>System.<span style="color: #2f00cf">out</span>.println(<span style="color: #5700ff">" my ImplA name is："</span>+name);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">实现类B：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.factoryMethod.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.factoryMethod.imp.interfaceTest;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">/**</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;* <span style="color: #8cafcc">@author</span> <span style="text-decoration: underline">jerry</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*/</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">public</span> <span style="color: #a10066">class</span> ImplB <span style="color: #a10066">implements</span> interfaceTest {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(String name){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>System.<span style="color: #2f00cf">out</span>.println(<span style="color: #5700ff">" my ImplB name is："</span>+name);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">抽象类：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.factoryMethod.imp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>abstract<span style="color: #000000"> </span>class<span style="color: #000000"> abstractClass {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(String name){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>interfaceTest impl = getImpl();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>impl.test(name);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span>&nbsp; <span style="color: #a10066">abstract</span> interfaceTest getImpl() ;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">子类A；</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.factoryMethod.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.factoryMethod.imp.abstractClass;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.factoryMethod.imp.interfaceTest;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">public</span> <span style="color: #a10066">class</span> ClassA <span style="color: #a10066">extends</span> abstractClass {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> interfaceTest getImpl() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">return</span> <span style="color: #a10066">new</span> ImplA();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<div><br />
</div>
<div>子类B：</div>
<div><br />
</div>
<div>
<div>package com.jerry.design.factoryMethod.impl;</div>
<div><br />
</div>
<div>import com.jerry.design.factoryMethod.imp.abstractClass;</div>
<div><br />
</div>
<div>import com.jerry.design.factoryMethod.imp.interfaceTest;</div>
<div><br />
</div>
<div>public class ClassB extends abstractClass {</div>
<div><br />
</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>@Override</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>public interfaceTest getImpl() {</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>return new ImplB();</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div>
<div><br />
</div>
<div>}</div>
</div>
<div><br />
</div>
<div>测试类：</div>
<div><br />
</div>
<div>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.factoryMethod.client;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.factoryMethod.imp.abstractClass;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.factoryMethod.impl.ClassA;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.factoryMethod.impl.ClassB;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> Test{</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">static</span> <span style="color: #a10066">void</span> main(String[] args) {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>abstractClass ac = <span style="color: #a10066">new</span> ClassA();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>ac.test(<span style="color: #5700ff">"yushh"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>abstractClass ac2 = <span style="color: #a10066">new</span> ClassB();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>ac2.test(<span style="color: #5700ff">"yushh2"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573">//<span class="Apple-tab-span" style="white-space:pre">		</span> my ImplA name is：yushh</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573">//<span class="Apple-tab-span" style="white-space:pre">		</span> my ImplB name is：yushh2</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">总结：分离出业务与创建，延迟实现。</p>
</div>
</p>
</p>
</p>
</p>
</div><img src ="http://www.blogjava.net/Cages/aggbug/370302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Cages/" target="_blank">疯狂的蜗牛</a> 2012-02-19 21:53 <a href="http://www.blogjava.net/Cages/articles/370302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>适配器模式（二）</title><link>http://www.blogjava.net/Cages/articles/370299.html</link><dc:creator>疯狂的蜗牛</dc:creator><author>疯狂的蜗牛</author><pubDate>Sun, 19 Feb 2012 12:53:00 GMT</pubDate><guid>http://www.blogjava.net/Cages/articles/370299.html</guid><wfw:comment>http://www.blogjava.net/Cages/comments/370299.html</wfw:comment><comments>http://www.blogjava.net/Cages/articles/370299.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Cages/comments/commentRss/370299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Cages/services/trackbacks/370299.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
接口A：
<div>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.adapter2.imp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>interface<span style="color: #000000"> InterfaceA {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testA();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
</div>
<div><br />
</div>
<div>接口B：</div>
<div>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.adapter2.imp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>interface<span style="color: #000000"> InterfaceB {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testB();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
</div>
<div><br />
</div>
<div>实现类A：</div>
<div>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.adapter2.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.adapter2.imp.InterfaceA;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> ImplA </span>implements<span style="color: #000000"> InterfaceA{</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testA() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #5700ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>System.</span><span style="color: #2f00cf">out</span><span style="color: #000000">.println(</span>" i am do something as InterfaceA!"<span style="color: #000000">);</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">实现类B：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.adapter2.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.adapter2.imp.InterfaceB;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> ImplB </span>implements<span style="color: #000000"> InterfaceB{</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testB() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #5700ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>System.</span><span style="color: #2f00cf">out</span><span style="color: #000000">.println(</span>" i am do something as InterfaceB!"<span style="color: #000000">);</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<div><br />
</div>
<div>实现类C：</div>
<div><br />
</div>
<div>
<div>
<div>package com.jerry.design.adapter2.impl;</div>
<div><br />
</div>
<div>import com.jerry.design.adapter2.imp.InterfaceA;</div>
<div>import com.jerry.design.adapter2.imp.InterfaceB;</div>
<div><br />
</div>
<div><br />
</div>
<div><br />
</div>
<div>public class ImplC implements InterfaceB,InterfaceA{</div>
<div><br />
</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>private InterfaceA implA;</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>private InterfaceB implB;</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>public ImplC(InterfaceA implA,InterfaceB implB){</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>this.implA = implA;</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>this.implB = implB;</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>@Override</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>public void testB() {</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>implA.testA();</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>@Override</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>public void testA() {</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>implB.testB();</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div>
<div><br />
</div>
<div>}</div>
</div>
</div>
<div><br />
</div>
<div><br />
</div>
<div>测试类：</div>
<div><br />
</div>
<div>
<div>package com.jerry.design.adapter2.client;</div>
<div><br />
</div>
<div>import com.jerry.design.adapter2.imp.InterfaceA;</div>
<div>import com.jerry.design.adapter2.imp.InterfaceB;</div>
<div>import com.jerry.design.adapter2.impl.ImplA;</div>
<div>import com.jerry.design.adapter2.impl.ImplB;</div>
<div>import com.jerry.design.adapter2.impl.ImplC;</div>
<div><br />
</div>
<div><br />
</div>
<div>public class Test {</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>public static void main(String[] args) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>InterfaceA implA = (InterfaceA) new ImplA();</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>InterfaceB implB = (InterfaceB) new ImplB();</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>InterfaceA implC = (InterfaceA) new ImplC(implA,implB);</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>InterfaceB implD = (InterfaceB) new ImplC(implA,implB);</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>implC.testA();// i am do something as InterfaceB!</div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span></div>
<div><span class="Apple-tab-span" style="white-space:pre">		</span>implD.testB();// i am do something as InterfaceA!</div>
<div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div>
<div><br />
</div>
<div>}</div>
</div>
<div><br />
</div>
<div>总结：正向反向均可适配。
</div>
<p>&nbsp;</p>
</div>
<div><br />
</div><img src ="http://www.blogjava.net/Cages/aggbug/370299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Cages/" target="_blank">疯狂的蜗牛</a> 2012-02-19 20:53 <a href="http://www.blogjava.net/Cages/articles/370299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>外观模式</title><link>http://www.blogjava.net/Cages/articles/370046.html</link><dc:creator>疯狂的蜗牛</dc:creator><author>疯狂的蜗牛</author><pubDate>Wed, 15 Feb 2012 12:54:00 GMT</pubDate><guid>http://www.blogjava.net/Cages/articles/370046.html</guid><wfw:comment>http://www.blogjava.net/Cages/comments/370046.html</wfw:comment><comments>http://www.blogjava.net/Cages/articles/370046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Cages/comments/commentRss/370046.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Cages/services/trackbacks/370046.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
接口类：
<div>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.facade.imp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>interface<span style="color: #000000"> FacadeImp {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testA();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testB();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testC();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">实现类A：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.facade.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.facade.imp.FacadeImp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> TestA </span>implements<span style="color: #000000"> FacadeImp {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #5700ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>System.</span><span style="color: #2f00cf">out</span><span style="color: #000000">.println(</span>" i am TestA's test()!"<span style="color: #000000">);</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testA() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #5700ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>System.</span><span style="color: #2f00cf">out</span><span style="color: #000000">.println(</span>" i am TestA's testA()!"<span style="color: #000000">);</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testB() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testC() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">实现类B：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.facade.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.facade.imp.FacadeImp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> TestB </span>implements<span style="color: #000000"> FacadeImp {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #5700ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>System.</span><span style="color: #2f00cf">out</span><span style="color: #000000">.println(</span>" i am TestB's test()!"<span style="color: #000000">);</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testA() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testB() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #5700ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>System.</span><span style="color: #2f00cf">out</span><span style="color: #000000">.println(</span>" i am TestB's testB()!"<span style="color: #000000">);</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testC() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">实现类C：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.facade.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.facade.imp.FacadeImp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> TestC </span>implements<span style="color: #000000"> FacadeImp {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #5700ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>System.</span><span style="color: #2f00cf">out</span><span style="color: #000000">.println(</span>" i am TestC's test()!"<span style="color: #000000">);</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testA() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testB() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #777777"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>@Override</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testC() {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #5700ff"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>System.</span><span style="color: #2f00cf">out</span><span style="color: #000000">.println(</span>" i am TestC's testC()!"<span style="color: #000000">);</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">外观类：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.facade.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> Facade {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testFacadeImplA(){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">new</span> TestA().test();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">new</span> TestB().test();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">new</span> TestC().test();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">&nbsp;&nbsp; <span style="color: #a10066">public</span> <span style="color: #a10066">void</span> testFacadeImplB(){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">new</span> TestA().testA();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">new</span> TestB().testB();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">new</span> TestC().testC();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">调用代码：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.facade.client;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.facade.impl.Facade;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> Test {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">	</span></span>/**</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece"><span class="Apple-tab-span" style="white-space:pre">	</span> * <span style="color: #8cafcc">@param</span> args</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece"><span class="Apple-tab-span" style="white-space:pre">	</span> */</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">static</span> <span style="color: #a10066">void</span> main(String[] args) {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">new</span> Facade().testFacadeImplA();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573">//<span class="Apple-tab-span" style="white-space:pre">		</span>i am TestA's test()!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573">//<span class="Apple-tab-span" style="white-space:pre">		</span> i am TestB's test()!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573">//<span class="Apple-tab-span" style="white-space:pre">		</span> i am TestC's test()!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">new</span> Facade().testFacadeImplB();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573">//<span class="Apple-tab-span" style="white-space:pre">		</span> i am TestA's testA()!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573">//<span class="Apple-tab-span" style="white-space:pre">		</span> i am TestB's testB()!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573">//<span class="Apple-tab-span" style="white-space:pre">		</span> i am TestC's testC()!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">总结：使子系统易用</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div><img src ="http://www.blogjava.net/Cages/aggbug/370046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Cages/" target="_blank">疯狂的蜗牛</a> 2012-02-15 20:54 <a href="http://www.blogjava.net/Cages/articles/370046.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单工厂</title><link>http://www.blogjava.net/Cages/articles/369990.html</link><dc:creator>疯狂的蜗牛</dc:creator><author>疯狂的蜗牛</author><pubDate>Tue, 14 Feb 2012 14:19:00 GMT</pubDate><guid>http://www.blogjava.net/Cages/articles/369990.html</guid><wfw:comment>http://www.blogjava.net/Cages/comments/369990.html</wfw:comment><comments>http://www.blogjava.net/Cages/articles/369990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Cages/comments/commentRss/369990.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Cages/services/trackbacks/369990.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&amp;file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&amp;file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);&nbsp;
<div><br />
</div>
<div><br />
</div>
<div>接口类：
<div>
<div>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.simpleFactory.imp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">/**</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;* <span style="color: #8cafcc">@author</span> <span style="text-decoration: underline">jerry</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*/</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">public</span> <span style="color: #a10066">interface</span> interfaceTest {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(String name);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">实现类A：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.simpleFactory.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.simpleFactory.imp.interfaceTest;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">/**</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;* <span style="color: #8cafcc">@author</span> <span style="text-decoration: underline">jerry</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*/</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">public</span> <span style="color: #a10066">class</span> ImplA <span style="color: #a10066">implements</span> interfaceTest {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(String name){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>System.<span style="color: #2f00cf">out</span>.println(<span style="color: #5700ff">" my ImplA name is："</span>+name);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">实现类B：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.simpleFactory.impl;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.simpleFactory.imp.interfaceTest;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">/**</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;* <span style="color: #8cafcc">@author</span> <span style="text-decoration: underline">jerry</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #516ece">&nbsp;*/</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">public</span> <span style="color: #a10066">class</span> ImplB <span style="color: #a10066">implements</span> interfaceTest {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">void</span> test(String name){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>System.<span style="color: #2f00cf">out</span>.println(<span style="color: #5700ff">" my ImplB name is："</span>+name);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">工厂类：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.simpleFactory.factory;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.simpleFactory.imp.interfaceTest;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.simpleFactory.impl.ImplA;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.simpleFactory.impl.ImplB;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">public</span> <span style="color: #a10066">class</span> Factory {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">static</span> interfaceTest createImp(<span style="color: #a10066">int</span> type){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>interfaceTest test = <span style="color: #a10066">null</span>;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">if</span>(type==1){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">			</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">			</span>test&nbsp; = (interfaceTest) <span style="color: #a10066">new</span> ImplA();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">			</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>}<span style="color: #a10066">else</span> <span style="color: #a10066">if</span>(type==2){</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">			</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">			</span>test = (interfaceTest) <span style="color: #a10066">new</span> ImplB();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span><span style="color: #a10066">return</span> test;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">测试类：</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">package</span> com.jerry.design.simpleFactory.factory;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="color: #a10066">import</span> com.jerry.design.simpleFactory.imp.interfaceTest;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a10066">public<span style="color: #000000"> </span>class<span style="color: #000000"> Test {</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><br />
</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span><span style="color: #a10066">public</span> <span style="color: #a10066">static</span> <span style="color: #a10066">void</span> main(String[] args) {</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>interfaceTest test = Factory.createImp(1);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>test.test(</span><span style="color: #5700ff">" i am jerry!"</span><span style="color: #000000">);</span>// my ImplA name is： i am <span style="text-decoration: underline">jerry</span>!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">		</span>test = Factory.createImp(2);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #319573"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">		</span>test.test(</span><span style="color: #5700ff">" i am jerry!"</span><span style="color: #000000">);</span>// my ImplB name is： i am <span style="text-decoration: underline">jerry</span>!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span class="Apple-tab-span" style="white-space:pre">		</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span class="Apple-tab-span" style="white-space:pre">	</span>}</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco">}</p>
<div><br />
</div>
<div><br />
</div>
<div>总结：简单工厂其实就是要选择实现的类而已。</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
</div>
</div><img src ="http://www.blogjava.net/Cages/aggbug/369990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Cages/" target="_blank">疯狂的蜗牛</a> 2012-02-14 22:19 <a href="http://www.blogjava.net/Cages/articles/369990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>