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

java flyweightģʽ

Flyweight ¶¨Òå:
±ÜÃâ´óÁ¿ÓµÓÐÏàͬÄÚÈݵÄСÀàµÄ¿ªÏú(ÈçºÄ·ÑÄÚ´æ),ʹ´ó¼Ò¹²ÏíÒ»¸öÀà(ÔªÀà).
ÃæÏò¶ÔÏóÓïÑÔµÄÔ­Ôò¾ÍÊÇÒ»Çж¼ÊǶÔÏó,µ«ÊÇÈç¹ûÕæÕýʹÓÃÆðÀ´,ÓÐʱ¶ÔÏóÊý¿ÉÄÜÏԵúÜÅÓ
´ó,±ÈÈç,×Ö´¦ÀíÈí¼þ,Èç¹ûÒÔÿ¸öÎÄ×Ö¶¼×÷Ϊһ¸ö¶ÔÏó,¼¸Ç§¸ö×Ö,¶ÔÏóÊý¾ÍÊǼ¸Ç§,ÎÞÒɺÄ
·ÑÄÚ´æ,ÄÇôÎÒÃÇ»¹ÊÇÒª"Çóͬ´æÒì",ÕÒ³öÕâЩ¶ÔÏóȺµÄ¹²Í¬µã,Éè¼ÆÒ»¸öÔªÀà,·â×°¿ÉÒÔ±»
¹²ÏíµÄÀà,ÁíÍâ,»¹ÓÐÒ»Ð©ÌØÐÔÊÇÈ¡¾öÓÚÓ¦ÓÃ(context),ÊDz»¿É¹²ÏíµÄ,ÕâÒ² Flyweight ÖÐÁ½
¸öÖØÒª¸ÅÄîÄÚ²¿×´Ì¬ intrinsic ºÍÍⲿ״̬ extrinsic Ö®·Ö.
Õâ¸öÊǶÔÕâ¸öģʽµÄ¶¨Ò壬ÎÒ¾õµÃ×îÖØÒªµÄÊÇÄܹ»¶ÔÒª´¦Àí¶ÔÏó½øÐÐÄÚ²¿×´Ì¬ºÍÍⲿ״̬µÄÇø·Ö£¬ÕâÑù¶ÔÏóµÄÄÚ²¿×´Ì¬¾ÍÄܹ²Ïí£¬µ«ÊǺܶàÀý×Ó¶¼°Ñflyweightģʽд³ÉÒ»pool£¬È»ºó¶ÔpoolÀïµÄ¶ÔÏó½øÐй²Ïí£¬ÕâÑùÃ²ËÆÆ«ÀëÁËflyweightģʽµÄ³õÖÔ¶øÇÒЧ¹û²»ÀíÏë¡£ÏÂÃæÊÇÍøÉÏÕÒµ½µÄÀý×Ó£¬±È½Ï·ûºÏģʽµÄÒâͼ
1.¶¨Òå³éÏó½Ó¿Ú
public interface Font {
public void SetFont(String color, int size);
public void GetFont();
}
2.½Ó¿ÚµÄ¾ßÌåʵÏÖ
public class ConcreteFont implements Font {
private String color;
private int size;
private String str;
public ConcreteFont(String s) {
str = s;
// id = "The char is: " + s;
}
public void SetFont(String _color, int _size) {
color = _color;
size = _size;
}
public void GetFont() {
System.out.println("String :" + str + "--- color is:" + color
+ "--- size is:" + size);
}
}
3.Flyweight factory ¸ºÔðά»¤Ò»¸ö Flyweight ³Ø(´æ·ÅÄÚ²¿×´Ì¬)
public class FontFactory {
private Hashtable<String, Font> charHashTable = new Hashtable();
public FontFactory() {
}
public Font GetFlyWeight(String s) {
if (charHashTable.get(s) != null) {
return (Font) charHashTable.get(s);
} else {
Font tmp = new ConcreteFont(s);
charHashTable.put(s, tmp);
return tmp;
}
}
public Hashtable GetFactory() {
return charHashTable;
}
}
²âÊÔ£º
public class Main {
public static void main(String[] args) {
int[] size = { 8, 9, 10, 11, 12 };
String[] color = { "FFFFFF", "000000", "FF00FF", "CCCCCC", "111111" };
FontFactory myFontFactory = new FontFactory(


Ïà¹ØÎĵµ£º

java´òÓ¡µÄÔ´´úÂë(ʾÀý)

package com.demo;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.print.*;
import java.util.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.swing.*;
/**
This program demonstrates how to print 2D graphics ......

Lucene£º»ùÓÚJavaµÄÈ«ÎļìË÷ÒýÇæ¼ò½é


LuceneÊÇÒ»¸ö»ùÓÚJavaµÄÈ«ÎÄË÷Òý¹¤¾ß°ü¡£
»ùÓÚJavaµÄÈ«ÎÄË÷ÒýÒýÇæLucene¼ò½é£º¹ØÓÚ×÷ÕߺÍLuceneµÄÀúÊ·
È«ÎļìË÷µÄʵÏÖ£ºLueneÈ«ÎÄË÷ÒýºÍÊý¾Ý¿âË÷ÒýµÄ±È½Ï
ÖÐÎÄÇзִʻúÖÆ¼ò½é£º»ùÓÚ´Ê¿âºÍ×Ô¶¯ÇзִÊËã·¨µÄ±È½Ï
¾ßÌåµÄ°²×°ºÍʹÓüò½é£ºÏµÍ³½á¹¹½éÉܺÍÑÝʾ
Hacking
Lucene£º¼ò»¯µÄ²éѯ·ÖÎöÆ÷£¬É¾³ýµÄʵÏÖ£¬¶¨ÖƵÄÅÅÐ ......

16Ììѧ»áJava £¨ºÜ²»´íµÄÎÄÕ£¬ÍƼö£©

Day 01
Ò»¡¢    ´ÓÃæÏò¹ý³Ì±à³Ìµ½ÃæÏò¶ÔÏó±à³ÌµÄ˼άת±ä
ÎÒÃÇÖªµÀËùÓеļÆËã»ú³ÌÐò¶¼ÊÇÓÉÁ½ÀàÔªËØ×é³É£º´úÂëºÍÊý¾Ý¡£´ËÍâ´Ó¸ÅÄîÉϽ«½²£¬³ÌÐò»¹¿ÉÒÔÒÔËûµÄ´úÂë»òÊÇÊý¾ÝΪºËÐĽøÐÐ×éÖ¯±àд¡£Ò²¾ÍÊÇ˵һЩ³ÌÐòÎ§ÈÆ“ÕýÔÚ·¢Éúʲô±àд“£¬¶øÁíһЩ³ÌÐòÔòÎ§ÈÆ”Ë­½«±»Ó°Ï쓱àд¡£ÕâÁ½ÖÖ· ......

java·´Éä»úÖÆ

JAVA·´Éä»úÖÆ
    JAVA·´Éä»úÖÆÊÇÔÚÔËÐÐ״̬ÖУ¬¶ÔÓÚÈÎÒâÒ»¸öÀ࣬¶¼Äܹ»ÖªµÀÕâ¸öÀàµÄËùÓÐÊôÐԺͷ½·¨£»¶ÔÓÚÈÎÒâÒ»¸ö¶ÔÏ󣬶¼Äܹ»µ÷ÓÃËüµÄÈÎÒâÒ»¸ö·½·¨£»ÕâÖÖ¶¯Ì¬»ñÈ¡µÄÐÅÏ¢ÒÔ¼°¶¯Ì¬µ÷ÓöÔÏóµÄ·½·¨µÄ¹¦ÄܳÆÎªjavaÓïÑԵķ´Éä»úÖÆ¡£
Java·´Éä»úÖÆÖ÷ÒªÌṩÁËÒÔϹ¦ÄÜ£º ÔÚÔËÐÐʱÅжÏÈÎÒâÒ»¸ö¶ÔÏóËùÊô ......

¼ÆËãJavaÈÕÆÚ£­£­Ñ§Ï°ÔõÑù´´½¨ºÍʹÓÃÈÕÆÚ


¸ÅÒª
²»¹ÜÄãÊÇ´¦Àí²ÆÎñ½»Ò×»¹ÊǼƻ®×ÅÏÂÒ»²½µÄÐж¯£¬Äã¶¼ÒªÖªµÀÔõÑùÔÚJavaÖн¨Á¢£¬Ê¹ÓúÍÏÔʾÈÕÆÚ¡£ÕâÐèÒªÄã¼òµ¥µÄ²éÔÄÒ»ÏÂÏàÓ¦ÀàµÄAPI²Î¿¼£ºÒ»¸öÈÕÆÚ¿ÉÒÔ´´½¨3¸öÏà¹ØÀàµÄ¶ÔÏó¡£ÕâÆªÎÄÕ¸æËßÄãÄãÏëÒªÖªµÀµÄÄÚÈÝ¡£
Javaͳ¼Æ´Ó1970Äê1ÔÂ1ÈÕÆðµÄºÁÃëµÄÊýÁ¿±íʾÈÕÆÚ¡£Ò²¾ÍÊÇ˵£¬ÀýÈ磬1970Äê1ÔÂ2ÈÕ£¬ÊÇÔÚ1ÔÂ1ÈÕºóµÄ86£¬400£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ