Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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 תjson

commons-beanutils-1.8.0.jar²»¼ÓÕâ¸ö°ü
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
commons-collections.jar ²»¼ÓÕâ¸ö°ü
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap
commons-lang-2.4.jar²»¼ÓÕâ¸ö°ü
java.lang.NoClassDefFoundError: org/apa ......

JAVA¼ÆËã»ú´úÂë

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class j5_13 extends Applet implements ActionListener
{
  Panel p=new Panel();//н¨²¼¾Ö
  Label welcome,la1,li1,la2,li2,lresult;//Ìáʾ±êÇ©,·ûºÅ±êÇ©ÒÔ¼°¼ÆËã½á¹ûµÄ±êÇ©
  TextField ta,tb,t ......

Java ÈÕÆÚ¼Ó減

public static void main(String[] args) {
   String DATE_FORMAT = "yyyy-MM-dd";
   java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
     DATE_FORMAT);
   Calendar c1 = Calendar.getInstance();
   c1.set(1999, 0, 14);
&n ......

javaÏß³Ìͬ²½ÎÊÌâ

Ò»°ã£¬ÓÐ3ÖÖʹÓÃËø½øÐÐͬ²½µÄ·½·¨
    a.·½·¨Í¬²½£¬ÀýÈçpublic synchronized void xxx()...
    b.¾²Ì¬·½·¨Í¬²½,ÀýÈçpublic static synchronized void xxx()...
    c.³ÌÐò¿éͬ²½,ÀýÈç
        ...
    &n ......

javaµÄÏß³Ìͬ²½»úÖÆsynchronized¹Ø¼ü×ÖµÄÀí½â

ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
ÐèÒªÃ÷È·µÄ¼¸¸öÎÊÌ⣺
       1)synchronized¹Ø¼ü×Ö¿ÉÒÔ×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ