﻿<?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/swingboat/category/6381.html</link><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;----只要路选对了，就不怕有多远！</description><language>zh-cn</language><lastBuildDate>Tue, 08 May 2007 14:10:41 GMT</lastBuildDate><pubDate>Tue, 08 May 2007 14:10:41 GMT</pubDate><ttl>60</ttl><item><title>synchronized的作用</title><link>http://www.blogjava.net/swingboat/archive/2007/05/08/115882.html</link><dc:creator>swingboat</dc:creator><author>swingboat</author><pubDate>Tue, 08 May 2007 03:02:00 GMT</pubDate><guid>http://www.blogjava.net/swingboat/archive/2007/05/08/115882.html</guid><wfw:comment>http://www.blogjava.net/swingboat/comments/115882.html</wfw:comment><comments>http://www.blogjava.net/swingboat/archive/2007/05/08/115882.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/swingboat/comments/commentRss/115882.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/swingboat/services/trackbacks/115882.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: synchronized的作用&nbsp;一、同步方法public synchronized void methodAAA(){//&#8230;.}锁定的是调用这个同步方法的对象测试：a、不使用这个关键字修饰方法，两个线程调用同一个对象的这个方法。目标类：1public&nbsp;class&nbsp;TestThread&nbsp;{2&nbsp;&nbsp;&nbsp;&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/swingboat/archive/2007/05/08/115882.html'>阅读全文</a><img src ="http://www.blogjava.net/swingboat/aggbug/115882.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/swingboat/" target="_blank">swingboat</a> 2007-05-08 11:02 <a href="http://www.blogjava.net/swingboat/archive/2007/05/08/115882.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式－－&gt;Singleton（单例模式） </title><link>http://www.blogjava.net/swingboat/archive/2005/12/28/25665.html</link><dc:creator>swingboat</dc:creator><author>swingboat</author><pubDate>Wed, 28 Dec 2005 01:21:00 GMT</pubDate><guid>http://www.blogjava.net/swingboat/archive/2005/12/28/25665.html</guid><wfw:comment>http://www.blogjava.net/swingboat/comments/25665.html</wfw:comment><comments>http://www.blogjava.net/swingboat/archive/2005/12/28/25665.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/swingboat/comments/commentRss/25665.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/swingboat/services/trackbacks/25665.html</trackback:ping><description><![CDATA[<P>单例模式，也就是在系统中只存在一个事例。它的应用还是比较广泛的，例如产品的功能菜单（功能树），系统上线以后，它就很少进行修改了，为了提供系统的性能，可以在系统中只存在这样一个功能菜单事例。这样单例模式也往往和Caching(缓存)模式同时使用。 <BR>package yhp.test.pattern.singleton; </P>
<P>public class TestSingleton { <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; private static TestSingleton _instance; <BR>&nbsp;&nbsp;&nbsp; public static TestSingleton getInstance(){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(_instance==null) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _instance=new TestSingleton(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return _instance; <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; private TestSingleton(){}&nbsp;&nbsp;//保证了不能直接new <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; private int _x=0; </P>
<P>&nbsp;&nbsp;&nbsp; public int get_x() { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return _x; <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; public void set_x(int _x) { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this._x = _x; <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; public static void main(String[] args) { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TestSingleton first=TestSingleton.getInstance(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TestSingleton second=TestSingleton.getInstance(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; first.set_x(4); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("First instance X's Value is:"+first.get_x());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//输入：4 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Sesond instance X's Value is:"+second.get_x());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//输入：4&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; } <BR>} <BR><BR>有点奇怪的是：我在main函数中增加以下代码： <BR>try{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TestSingleton test= new TestSingleton();&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test.set_x(6); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("new instance X's Value is:"+test.get_x()); <BR>}catch(Exception e){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("单例模式对象是不允许被new的！"); <BR>} <BR>在eclipse中运行，竟然能够编译通过，而且输出了6，但新建一个类，在main函数中增加相同的代码，编译就不能通过了。</P><img src ="http://www.blogjava.net/swingboat/aggbug/25665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/swingboat/" target="_blank">swingboat</a> 2005-12-28 09:21 <a href="http://www.blogjava.net/swingboat/archive/2005/12/28/25665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cache模式的两种构成方式 </title><link>http://www.blogjava.net/swingboat/archive/2005/12/28/25645.html</link><dc:creator>swingboat</dc:creator><author>swingboat</author><pubDate>Wed, 28 Dec 2005 01:01:00 GMT</pubDate><guid>http://www.blogjava.net/swingboat/archive/2005/12/28/25645.html</guid><wfw:comment>http://www.blogjava.net/swingboat/comments/25645.html</wfw:comment><comments>http://www.blogjava.net/swingboat/archive/2005/12/28/25645.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/swingboat/comments/commentRss/25645.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/swingboat/services/trackbacks/25645.html</trackback:ping><description><![CDATA[在我们系统开发中，有一些数据变动比较少，但是会经常对它进行访问。为了提高访问的性能，我们首先会把数据从数据库中读出，放入到一个Hashtable中。以后数据的访问都是从Hashtable中获取，这样起到了一个cache的作用。从数据库中获取数据有两种方式：<BR>1、系统第一次访问，从数据中获取所有的数据放入到Hashtable。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这种方式比较适合数据量比较小的数据，例如：模块的管理。一个系统中不可能有太多的模块，一次从数据库中获取出所有的模块数据，放入到Hashtable中。以后对模块的访问都只用对Hashtable访问就可以了。<BR>&nbsp;2、系统第一次访问，只获取需要访问的数据，然后把它们放入到Hashtable中<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这种方式比较适合数据量还是比较大的数据。需要访问数据时，首先检测Hashtable中有没有需要的数据，如果有就直接从Hashtable中获取，如果没有就从数据库中获取需要的数据，然后再把这些数据放入到Hashtable中。 <BR><BR>注意：两种方式，当数据被改动的时候（add,update,del）同时也需要更新Hashtable中的数据。<img src ="http://www.blogjava.net/swingboat/aggbug/25645.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/swingboat/" target="_blank">swingboat</a> 2005-12-28 09:01 <a href="http://www.blogjava.net/swingboat/archive/2005/12/28/25645.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>