隨筆 - 117  文章 - 72  trackbacks - 0

          聲明:原創(chuàng)作品(標有[原]字樣)轉載時請注明出處,謝謝。

          常用鏈接

          常用設置
          常用軟件
          常用命令
           

          訂閱

          訂閱

          留言簿(7)

          隨筆分類(130)

          隨筆檔案(123)

          搜索

          •  

          積分與排名

          • 積分 - 156395
          • 排名 - 390

          最新評論

          [關鍵字]:java,design pattern,設計模式,《Java與模式》學習,composite,合成模式
          [環(huán)境]:StarUML5.0 + JDK6
          [作者]:Winty (wintys@gmail.com) http://www.aygfsteel.com/wintys/
          [正文]:
          安全的合成模式

          package pattern.composite.safe;

          import java.util.*;
          /**
           * 安全的合成模式:Composite Pattern
           * @version 2009-6-3
           * @author Winty(wintys@gmail.com)
           */
          public class SafeCompositeTest{
              public static void main(String[] args){
                  Graphics g1 , g2;
                  Picture p1 , p2;

                  g1 = new Line();
                  g2 = new Circle();
                  p1 = new Picture();
                  p2 = new Picture();

                  g1.draw();
                  g2.draw();
                  System.out.println("");

                  p1.add(g1);
                  p1.add(g2);
                  p1.draw();
                  System.out.println("");

                  p2.add(g1);
                  p2.add(g2);
                  p2.add(p1);
                  p2.draw();
              }
          }

          /**
           * 抽象Component角色
           */
          interface Graphics{
              void draw();
          }

          /**
           * Leaf角色
           */
          class Line implements Graphics{
              @Override
              public void draw(){
                  System.out.println("draw a line.");
              }
          }

          /**
            * Leaf角色
            */
          class Circle implements Graphics{
              @Override
              public void draw(){
                  System.out.println("draw a circle");
              }
          }


          /**
           * Composite角色
           */
          class Picture implements Graphics{
              private List<Graphics> graphics;

              public Picture(){
                  graphics = new ArrayList<Graphics>();
              }

              @Override
              public void draw(){
                  Iterator<Graphics> it = graphics.iterator();
                  while(it.hasNext()){
                      Graphics g = it.next();
                      g.draw();
                  }
              }

              public void add(Graphics g){
                  graphics.add(g);
              }

              public void remove(int i){
                  graphics.remove(i);
              }

              public Graphics getChild(int i){
                  return graphics.get(i);
              }
          }
          運行結果:

          draw a line.
          draw a circle

          draw a line.
          draw a circle

          draw a line.
          draw a circle
          draw a line.
          draw a circle
          posted on 2009-06-08 22:27 天堂露珠 閱讀(1151) 評論(3)  編輯  收藏 所屬分類: Pattern

          FeedBack:
          # re: [原]合成模式-安全的 2009-06-09 17:16 找個美女做老婆
          我的博客搬到新家了 http://www.javaly.cn, 順便給你推薦一個導航網(wǎng)站 http://www.510gougou.com  回復  更多評論
            
          # re: [原]合成模式-安全的 2009-06-13 09:43 metadmin
          安全表現(xiàn)在哪里呢?


          ---------------------------------
          解開權限與業(yè)務耦合,提高開發(fā)效率
          細粒度權限管理軟件 試用版下載
          http://www.metadmin.com

            回復  更多評論
            
          # re: [原]合成模式-安全的 2009-06-13 10:49 天堂露珠
          @metadmin
          只是一個例子,相關的理論請參考《Java與模式》。  回復  更多評論
            
          主站蜘蛛池模板: 闵行区| 高唐县| 文登市| 额敏县| 张北县| 颍上县| 尼勒克县| 樟树市| 拜泉县| 玉树县| 湘西| 天津市| 大港区| 彩票| 民丰县| 和顺县| 疏附县| 峨眉山市| 岑溪市| 内乡县| 忻州市| 安西县| 陆丰市| 新巴尔虎左旗| 栖霞市| 贵南县| 汝南县| 新闻| 海丰县| 阜康市| 芜湖县| 资阳市| 宁晋县| 上饶县| 兴业县| 伊吾县| 康乐县| 伽师县| 平安县| 蒲城县| 凌海市|