﻿<?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-java-god-随笔分类-pattern</title><link>http://www.blogjava.net/java-god/category/29683.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 01 Apr 2008 08:02:02 GMT</lastBuildDate><pubDate>Tue, 01 Apr 2008 08:02:02 GMT</pubDate><ttl>60</ttl><item><title>Facade模式的一个典型应用--数据库JDBC的应用</title><link>http://www.blogjava.net/java-god/archive/2008/02/28/182697.html</link><dc:creator>java flex 结合</dc:creator><author>java flex 结合</author><pubDate>Thu, 28 Feb 2008 07:27:00 GMT</pubDate><guid>http://www.blogjava.net/java-god/archive/2008/02/28/182697.html</guid><wfw:comment>http://www.blogjava.net/java-god/comments/182697.html</wfw:comment><comments>http://www.blogjava.net/java-god/archive/2008/02/28/182697.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/java-god/comments/commentRss/182697.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/java-god/services/trackbacks/182697.html</trackback:ping><description><![CDATA[<em><strong>Facade模式的定义</strong></em>: 为子系统中的一组接口提供一个一致的界面.Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作:<br />
<strong>说明：</strong>这是在网上的一篇文章中看到的列子，上面没有写全，我在这里补上了，没有用到接口。<br />
<br />
package com.pattern.structural.facade;<br />
<br />
import java.sql.Connection;<br />
import java.sql.DriverManager;<br />
import java.sql.PreparedStatement;<br />
import java.sql.ResultSet;<br />
import java.sql.SQLException;<br />
/*<br />
&nbsp;* 外观模式的主要用途就是为子系统的复杂处理过程提供方便的调用方法，<br />
&nbsp;* 使得子系统更加容易被使用。<br />
&nbsp;* Facade对象通常属于Singleton模式。<br />
*/<br />
public class Mysql {<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; private static Connection conn=null;<br />
&nbsp;&nbsp;&nbsp; private static PreparedStatement prep=null;<br />
<br />
&nbsp;&nbsp;&nbsp; public Mysql(String sql) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Class.forName("com.mysql.jdbc.Driver").newInstance();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; prep = conn.prepareStatement(sql);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; public void setString(int index, String parString) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; prep.setString(index, parString);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; public ResultSet executeQuery() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return prep.executeQuery();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; public void close() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; conn.close();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; prep.close();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
<br />
package com.pattern.structural.facade;<br />
<br />
import java.sql.Connection;<br />
import java.sql.DriverManager;<br />
import java.sql.PreparedStatement;<br />
import java.sql.ResultSet;<br />
<br />
public class DBCompare {<br />
<br />
&nbsp;&nbsp;&nbsp; public void getResultSet(String sql) {<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String sql = "SELECT * FROM bulletin WHERE id = ?";<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Mysql mysql = new Mysql(sql);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mysql.setString(1, "4");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSet rset = mysql.executeQuery();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while (rset.next()) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(rset.getString("id"));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } finally {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mysql.close();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mysql = null;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
<br />
package com.pattern.structural.facade;<br />
<br />
import java.sql.ResultSet;<br />
<br />
public class FacadeTest {<br />
<br />
&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Mysql mysql = new Mysql("SELECT * FROM bulletin");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ResultSet rset = mysql.executeQuery();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while (rset.next()) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(rset.getString("id"));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } finally {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mysql.close();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mysql = null;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
}<br />
<br />
<img src ="http://www.blogjava.net/java-god/aggbug/182697.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/java-god/" target="_blank">java flex 结合</a> 2008-02-28 15:27 <a href="http://www.blogjava.net/java-god/archive/2008/02/28/182697.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式之Command——电视篇</title><link>http://www.blogjava.net/java-god/archive/2008/02/27/182377.html</link><dc:creator>java flex 结合</dc:creator><author>java flex 结合</author><pubDate>Wed, 27 Feb 2008 01:21:00 GMT</pubDate><guid>http://www.blogjava.net/java-god/archive/2008/02/27/182377.html</guid><wfw:comment>http://www.blogjava.net/java-god/comments/182377.html</wfw:comment><comments>http://www.blogjava.net/java-god/archive/2008/02/27/182377.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/java-god/comments/commentRss/182377.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/java-god/services/trackbacks/182377.html</trackback:ping><description><![CDATA[<span id="zoom">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span style="font-family: 宋体;">大家都知道</span><span style="font-family: 宋体;">电视遥控器节目面板（</span><span lang="EN-US">ProgramPan</span><span style="font-family: 宋体;">）是由节目按钮组成，通过选择相应的节目按钮，就可以切换到相应的节目屏道。</span><span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="4">下来让我们看看如何实现通过遥控器按钮选择节目屏道的过程吧。</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">&nbsp;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">1</span><span style="font-family: 宋体;">、在这里，先定义遥控器按钮（</span><span lang="EN-US">RemoteControlButton</span><span style="font-family: 宋体;">）接口：</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">public interface RemoteControlButton {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp; </span>public abstract void<span>&nbsp; </span>selectProgram(); //</span><span style="font-family: 宋体;">选择节目屏道</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">2</span><span style="font-family: 宋体;">、再定义遥控器按钮（</span><span lang="EN-US">RemoteControlButton</span><span style="font-family: 宋体;">）接口的实现类：</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">A</span><span style="font-family: 宋体;">：卡通节目按钮（</span><span lang="EN-US">CartonProgramButton</span><span style="font-family: 宋体;">）类：</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">public class CartonProgramButton implements RemoteControlButton{</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>public void selectProgram() {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>System.out.println("</span><span style="font-family: 宋体;">选择了卡通屏道！</span><span lang="EN-US">");</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">B</span><span style="font-family: 宋体;">：电视剧节目按钮（</span><span lang="EN-US">TvPlanProgramButton</span><span style="font-family: 宋体;">）类：</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">public class TvPlanProgramButton implements RemoteControlButton {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>public void selectProgram() {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>System.out.println("</span><span style="font-family: 宋体;">选择了电视剧屏道！</span><span lang="EN-US">");</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">C</span><span style="font-family: 宋体;">：足球节目按钮（</span><span lang="EN-US">FootProgramButton</span><span style="font-family: 宋体;">）类：</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">public class FootProgramButton implements RemoteControlButton {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>public void selectProgram() {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>System.out.println("</span><span style="font-family: 宋体;">选择了足球屏道！</span><span lang="EN-US">");</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">3</span><span style="font-family: 宋体;">、遥控器节目面板（</span><span lang="EN-US">ProgramPan</span><span style="font-family: 宋体;">）类：用来控制节目按钮，显示节目</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">public class ProgramPan {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>public static List programList() {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>List list = new ArrayList();<span>&nbsp; </span>//</span><span style="font-family: 宋体;">节目屏道按钮列表</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>list.add(new CartonProgramButton()); //</span><span style="font-family: 宋体;">卡通屏道按钮</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>list.add(new TvPlanProgramButton()); //</span><span style="font-family: 宋体;">电视剧屏道按钮</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>list.add(new FootProgramButton());<span>&nbsp;&nbsp; </span>//</span><span style="font-family: 宋体;">足球屏道按钮</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp;&nbsp;&nbsp; </span>return list;</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">4</span><span style="font-family: 宋体;">、编写测试类：</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">public class TestCommand {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>public static void main(String[] args) {</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp; </span>List list = ProgramPan.programList();<span>&nbsp; </span>//</span><span style="font-family: 宋体;">获得节目屏道按钮</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp;&nbsp;&nbsp; </span>for (Iterator it = list.iterator();it.hasNext();)</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>( (RemoteControlButton) it.next()).selectProgram();<span>&nbsp; </span>//</span><span style="font-family: 宋体;">选择节目屏道中对应的节目</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4"><span>&nbsp; </span>}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><font size="4">}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">5</span><span style="font-family: 宋体;">、说明：</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">A</span><span style="font-family: 宋体;">：</span><span lang="EN-US">Command</span><span style="font-family: 宋体;">说白了就是通过选择一个个命令，然后执行相应动作。</span><span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">B</span><span style="font-family: 宋体;">：</span><span lang="EN-US">Command</span><span style="font-family: 宋体;">是对行为进行封装的典型模式，在本例中通过遥控器节目面板（</span><span lang="EN-US">ProgramPan</span><span style="font-family: 宋体;">）这个封装类来实现我们看电视节目的目的。</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="4"><span lang="EN-US">C</span><span style="font-family: 宋体;">：</span><span lang="EN-US">Command</span><span style="font-family: 宋体;">模式和</span><span lang="EN-US">Facade(</span><span style="font-family: 宋体;">外观</span><span lang="EN-US">)</span><span style="font-family: 宋体;">模式似乎比较相似。都是通过封装类来进行访问的。如何区分，对这点我也比较疑惑。</span></font></p>
</span>
<img src ="http://www.blogjava.net/java-god/aggbug/182377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/java-god/" target="_blank">java flex 结合</a> 2008-02-27 09:21 <a href="http://www.blogjava.net/java-god/archive/2008/02/27/182377.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>