<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    人在江湖

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      82 Posts :: 10 Stories :: 169 Comments :: 0 Trackbacks

    單純fly weight

       1: //抽象享元角色
       2: abstract public class Flyweight
       3: {
       4:     abstract public void operation(String state);
       5: }
       6:  

     

       1: //具體享元(ConcreteFlyweight)角色
       2: public class ConcreteFlyweight extends Flyweight
       3: {
       4:     private Character intrinsicState = null;
       5:  
       6:  public ConcreteFlyweight(Character state)
       7:  {
       8:   this.intrinsicState = state;
       9:  }
      10:  
      11:  public void operation(String state)
      12:  {
      13:   System.out.print( "\nIntrinsic State = " + intrinsicState +
      14:             ", Extrinsic State = " + state);
      15:  }
      16: }
      17:  

     

       1: //享元工廠(FlyweightFactory)角色
       2: import java.util.Map;
       3: import java.util.HashMap;
       4: import java.util.Iterator;
       5:  
       6: public class FlyweightFactory
       7: {
       8:     private HashMap flies = new HashMap();
       9:     /**
      10:      * @link aggregation
      11:      * @directed
      12:      * @clientRole Flyweights
      13:      */
      14:     private Flyweight lnkFlyweight;
      15:  
      16:  public FlyweightFactory(){}
      17:  
      18:  public synchronized Flyweight factory(Character state)
      19:  {
      20:   if ( flies.containsKey( state ) )
      21:         {
      22:             return (Flyweight) flies.get( state );
      23:         }
      24:         else
      25:         {
      26:    Flyweight fly = new ConcreteFlyweight( state );
      27:             flies.put( state , fly);
      28:             return fly;
      29:         }
      30:  }
      31:  
      32:  public void checkFlyweight()
      33:  {
      34:   Flyweight fly ;
      35:         int i = 0;
      36:  
      37:         System.out.println("\n==========checkFlyweight()=============");
      38:   for ( Iterator it = flies.entrySet().iterator() ; it.hasNext() ;  )
      39:         {
      40:    Map.Entry e = (Map.Entry) it.next();
      41:             System.out.println("Item " + (++i) + " : " + e.getKey());
      42:         }
      43:         System.out.println("==========checkFlyweight()=============");
      44:  }
      45:  
      46: }
      47:  

     

       1:  
       2: //客戶端(Client)角色
       3: public class Client
       4: {
       5:     private static FlyweightFactory factory;
       6:  
       7:     static public void main(String[] args)
       8:  {
       9:   factory = new FlyweightFactory();
      10:  
      11:   Flyweight fly = factory.factory(new Character('a'));
      12:   fly.operation("First Call");
      13:   
      14:   fly = factory.factory(new Character('b'));
      15:   fly.operation("Second Call");
      16:   
      17:   fly = factory.factory(new Character('a'));
      18:   fly.operation("Third Call");
      19:   
      20:   // intrinsic Flyweight
      21:   factory.checkFlyweight();
      22:  }
      23: }
      24:  

    復(fù)合fly weight

       1: //抽象享元角色
       2: abstract public class Flyweight
       3: {
       4:     abstract public void operation(String state);
       5: }

       1: //具體享元(ConcreteFlyweight)角色
       2: public class ConcreteFlyweight extends Flyweight
       3: {
       4:     private Character intrinsicState = null;
       5:  
       6:  public ConcreteFlyweight(Character state)
       7:  {
       8:   this.intrinsicState = state;
       9:  }
      10:  
      11:  public void operation(String state)
      12:  {
      13:   System.out.print( "\nInternal State = " +
      14:             intrinsicState + " Extrinsic State = " + state );
      15:  }
      16: }
      17:  

       1: //復(fù)合享元(UnsharableFlyweight)角色
       2: import java.util.Map;
       3: import java.util.HashMap;
       4: import java.util.Iterator;
       5:  
       6: public class ConcreteCompositeFlyweight extends Flyweight
       7: {
       8:     private HashMap flies = new HashMap(10);
       9:  
      10:     /**
      11:      * @link aggregation
      12:      * @directed
      13:      * @clientRole Composite
      14:      */
      15:     private Flyweight flyweight;
      16:  
      17:  public ConcreteCompositeFlyweight()
      18:  {
      19:  }
      20:  
      21:  public void add(Character key, Flyweight fly)
      22:  {
      23:   flies.put(key, fly);
      24:  }
      25:  
      26:  public void operation(String extrinsicState)
      27:  {
      28:         Flyweight fly =  null;
      29:  
      30:   for ( Iterator it = flies.entrySet().iterator() ; it.hasNext() ;  )
      31:         {
      32:    Map.Entry e = (Map.Entry) it.next();
      33:             fly = (Flyweight) e.getValue();
      34:  
      35:             fly.operation(extrinsicState);
      36:         }
      37:  }
      38: }
      39:  
       1: //享元工廠(FlyweightFactory)角色
       2: import java.util.Map;
       3: import java.util.HashMap;
       4: import java.util.Iterator;
       5:  
       6: public class FlyweightFactory
       7: {
       8:     private HashMap flies = new HashMap();
       9:     /**
      10:      * @link aggregation
      11:      * @directed
      12:      * @clientRole Flyweights
      13:      */
      14:     private Flyweight lnkFlyweight;
      15:  
      16:  public FlyweightFactory(){}
      17:  
      18:  public Flyweight factory(String compositeState)
      19:  {
      20:   ConcreteCompositeFlyweight compositeFly = new ConcreteCompositeFlyweight();
      21:   
      22:   int length = compositeState.length();
      23:         Character state = null;
      24:  
      25:   for(int i = 0; i < length; i++)
      26:   {
      27:    state = new Character(compositeState.charAt(i) );
      28:             System.out.println("factory(" + state + ")");
      29:    compositeFly.add( state, this.factory( state) );
      30:   }
      31:   return compositeFly;
      32:     }
      33:  
      34:  public Flyweight factory(Character state)
      35:  {
      36:   if ( flies.containsKey( state ) )
      37:         {
      38:             return (Flyweight) flies.get( state );
      39:         }
      40:         else
      41:         {
      42:    Flyweight fly = new ConcreteFlyweight( state );
      43:             flies.put( state , fly);
      44:             return fly;
      45:         }
      46:  }
      47:  
      48:  public void checkFlyweight()
      49:  {
      50:   Flyweight fly ;
      51:         int i = 0 ;
      52:  
      53:         System.out.println("\n==========checkFlyweight()=============");
      54:   for ( Iterator it = flies.entrySet().iterator() ; it.hasNext() ;  )
      55:         {
      56:    Map.Entry e = (Map.Entry) it.next();
      57:             System.out.println( "Item " + (++i) + " : " + e.getKey());
      58:         }
      59:         System.out.println("\n==========checkFlyweight()=============");
      60:  }
      61:  
      62: }
      63:  

       1: //客戶端(Client)角色
       2: public class Client
       3: {
       4:     private static FlyweightFactory factory;
       5:  
       6:     public static void main(String[] args)
       7:  {
       8:   factory = new FlyweightFactory();
       9:  
      10:   Flyweight fly;
      11: /*        fly = factory.factory(new Character('a'));
      12:   fly.operation();
      13:   
      14:   fly = factory.factory(new Character('b'));
      15:   fly.operation();
      16:   
      17:   fly = factory.factory(new Character('a'));
      18:   fly.operation();
      19: */
      20:         fly = factory.factory("abc");
      21:         fly.operation("Composite Call");
      22:   
      23: // intrinsic Flyweight
      24:   factory.checkFlyweight();
      25:  }
      26: }
      27:  
      28:  
      29:  
      30:  
    posted on 2011-02-12 23:57 人在江湖 閱讀(673) 評論(0)  編輯  收藏 所屬分類: design pattern
    主站蜘蛛池模板: 国产成人涩涩涩视频在线观看免费| 99ee6热久久免费精品6| 中文在线观看永久免费| a级特黄毛片免费观看| 99在线热视频只有精品免费| 亚洲免费人成视频观看| 免费无码又爽又刺激高潮的视频| 免费人成在线观看播放国产| 亚洲中文字幕无码爆乳AV| 少妇中文字幕乱码亚洲影视| 色偷偷亚洲女人天堂观看欧| 韩国亚洲伊人久久综合影院| 成av免费大片黄在线观看| 91福利免费体验区观看区| 在线观看人成网站深夜免费| 亚洲中文无韩国r级电影 | 一个人免费高清在线观看| 国产18禁黄网站免费观看| 亚洲精品国产成人片| 亚洲AV色吊丝无码| 一级黄色免费大片| 人与禽交免费网站视频| 亚洲成AV人网址| 亚洲精品在线免费观看| 精品久久久久久亚洲综合网| 九九精品成人免费国产片| 永久免费AV无码国产网站 | 免费的一级片网站| 亚洲人成精品久久久久| 国产精品亚洲综合久久| 中文在线观看国语高清免费| 日韩免费a级毛片无码a∨| 国产国拍精品亚洲AV片| 亚洲妇女熟BBW| 免费一级不卡毛片| 国产美女被遭强高潮免费网站| 午夜影视日本亚洲欧洲精品一区| 亚洲精品永久在线观看| 一区二区三区在线免费看| 免费在线视频一区| 国产91在线|亚洲|