Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

JavaÉè¼Æģʽ֮Flyweightģʽ


GOF£ºÔËÓù²Ïí¼¼ÊõÓÐЧµØÖ§³Ö´óÁ¿Ï¸Á£¶ÈµÄ¶ÔÏó¡£
 
½âÊÍһϸÅÄҲ¾ÍÊÇ˵ÔÚÒ»¸öϵͳÖÐÈç¹ûÓжà¸öÏàͬµÄ¶ÔÏó£¬ÄÇôֻ¹²ÏíÒ»·Ý¾Í¿ÉÒÔ
ÁË£¬²»±Øÿ¸ö¶¼È¥ÊµÀý»¯Ò»¸ö¶ÔÏó¡£±ÈÈç˵£¨ÕâÀïÒýÓÃGOFÊéÖеÄÀý×Ó£©Ò»¸öÎı¾ÏµÍ³£¬Ã¿¸ö×Öĸ¶¨Ò»¸ö¶ÔÏó£¬ÄÇô´óСд×Öĸһ¹²¾ÍÊÇ52¸ö£¬ÄÇô¾ÍÒª¶¨Òå
52¸ö¶ÔÏó¡£Èç¹ûÓÐÒ»¸ö1MµÄÎı¾£¬ÄÇô×ÖĸÊǺÎÆäµÄ¶à£¬Èç¹ûÿ¸ö×Öĸ¶¼¶¨ÒåÒ»¸ö¶ÔÏóÄÇôÄÚ´æÔç¾Í±¬ÁË¡£ÄÇôÈç¹ûÒªÊÇÿ¸ö×Öĸ¶¼¹²ÏíÒ»¸ö¶ÔÏó£¬ÄÇô¾Í´ó´ó
½ÚÔ¼ÁË×ÊÔ´¡£
 
ÔÚFlyweightģʽÖУ¬ÓÉÓÚÒª²úÉú¸÷ÖÖ¸÷ÑùµÄ¶ÔÏó£¬ËùÒÔÔÚ
Flyweight(ÏíÔª)ģʽÖг£³öÏÖFactory ģʽ¡£FlyweightµÄÄÚ²¿×´Ì¬ÊÇÓÃÀ´¹²ÏíµÄ,Flyweight
factory¸ºÔðά»¤Ò»¸ö¶ÔÏó´æ´¢³Ø£¨Flyweight
Pool£©À´´æ·ÅÄÚ²¿×´Ì¬µÄ¶ÔÏó¡£FlyweightģʽÊÇÒ»¸öÌá¸ß³ÌÐòЧÂʺÍÐÔÄܵÄģʽ,»á´ó´ó¼Ó¿ì³ÌÐòµÄÔËÐÐËÙ¶È.Ó¦Óó¡ºÏºÜ¶à£¬ÏÂÃæ¾Ù¸öÀý×Ó£º
 
Ïȶ¨ÒåÒ»¸ö³éÏóµÄFlyweightÀࣺ
 
package Flyweight;
 
public abstract class Flyweight
...
{
¡¡public abstract void operation();
}//end abstract class Flyweight
 
ÔÚʵÏÖÒ»¸ö¾ßÌåÀࣺ
 
package Flyweight;
 
public class ConcreteFlyweight extends Flyweight
...
{
¡¡private String string;
¡¡public ConcreteFlyweight(String str)
¡¡...
¡¡{
string = str;
¡¡}//end ConcreteFlyweight(...)
 
¡¡public void operation()
¡¡...
¡¡{
System.out.println("Concrete---Flyweight : " + string);
¡¡}//end operation()
 
}//end class ConcreteFlyweight
 
ʵÏÖÒ»¸ö¹¤³§·½·¨Àࣺ
 
package Flyweight;
import java.util.Hashtable;
 
public class FlyweightFactory
...
{
¡¡private Hashtable flyweights = new Hashtable();//----------------------------1
¡¡public FlyweightFactory() ...{}
 
¡¡public Flyweight getFlyWeight(Object obj)
¡¡...
¡¡{
Flyweight flyweight = (Flyweight) flyweights.get(obj);//----------------2
 
if(flyweight == null) ...{//---------------------------------------------------3
¡¡//²úÉúеÄConcreteFlyweight
¡¡flyweight = new ConcreteFlyweight((String)obj);
¡¡flyweights.put(obj, flyweight);//--------------------------------------5
}
r


Ïà¹ØÎĵµ£º

Javaͬ²½»úÖÆ£ºsychronized¶Ô´úÂëÓ°Ïì

ת £ºhttp://kuru.javaeye.com/blog/288467
Java¶Ô¶àÏ̵߳ÄÖ§³ÖÓëͬ²½»úÖÆÉîÊÜ´ó¼ÒµÄϲ°®£¬Ëƺõ¿´ÆðÀ´Ê¹ÓÃÁËsynchronized¹Ø¼ü×־ͿÉÒÔÇáËɵؽâ¾ö¶àÏ̹߳²ÏíÊý¾Ýͬ²½ÎÊÌâ¡£µ½µ×ÈçºÎ£¿¨D¨D»¹µÃ¶Ôsynchronized¹Ø¼ü×ÖµÄ×÷ÓýøÐÐÉîÈëÁ˽â²Å¿É¶¨ÂÛ¡£ ×ܵÄ˵À´£¬synchronized¹Ø¼ü×Ö¿ÉÒÔ×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£¬Ò ......

Java¿ª·¢ Ö® StringBufferºÍStringBuilder(1)


ת £º http://www.jcourse.cn/read/234
2009-03-02 ×÷Õß:
zhangtaolv
ÔÚÎÒÃÇÈÕ³£¿ª·¢ÖУ¬¾­³£»áÓöµ½¶ÔÎı¾µÄ²Ù×÷£¬²¢ÇÒÔÚÒ»°ãµÄMISϵͳÖУ¬Îı¾²Ù×÷ÓÈΪ¶à£¬ÈçÓû§Ãû¡¢ÎÄÕÂÄÚÈÝ¡¢ÎÄÕ±êÌâ¡¢ºÏͬÄÚÈݵȡ£ÔÚ֮ǰµÄ½Ì³ÌÖУ¬ÎÒÒ²¸ø´ó¼Ò½²½âÁËJavaÖÐ×î»ù±¾µÄ×Ö·û´®²Ù×÷µÄÀ࣬String¡£ÔÚ֮ǰµÄ½Ì³ÌÖÐÎÒÒ²¸ø´ó¼Ò½²ÁËStr ......

javaÕýÔò±í´ïʽÖеÄÊýÁ¿´Ê

    javaÖеÄÕýÔòλÓÚjava.util.regex°üÖУ¬Õâ¸ö°üÖÐÖ»ÓÐÒ»¸öMatchResult½Ó¿ÚºÍMatcher¡¢PatternÁ½¸öÀà¡£
   ÕýÔòÖеÄÊýÁ¿´ÊÓÐGreedy (Ì°À·)¡¢Reluctant(ÀÁ¶è)ºÍPossessive(Ç¿Õ¼)ÈýÖÖ
  
 Greedy ÊýÁ¿´Ê
X?
X£¬Ò»´Î»òÒ»´ÎҲûÓÐ
X*
X£¬Áã´Î»ò¶à´Î
X+
X£¬Ò»´Î»ò¶à´Î
X{n ......

JavaÖÐByteÐÍת×Ö·û´®

public static String byteToString(byte src)
{
    String desc = null;
    int i = 0;    //È¡1¸ö×Ö½Ú
    i = src&0xFF;
    desc = Integer.toHexString(i);
    if (desc.length() == 1) ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ