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

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

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

    隨筆 - 117  文章 - 72  trackbacks - 0

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

    常用鏈接

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

    訂閱

    訂閱

    留言簿(7)

    隨筆分類(130)

    隨筆檔案(123)

    搜索

    •  

    積分與排名

    • 積分 - 155667
    • 排名 - 391

    最新評論

    [關鍵字]:java,design pattern,設計模式,《Java與模式》學習,composite,合成模式
    [環境]:StarUML5.0 + JDK6
    [作者]:Winty (wintys@gmail.com) http://m.tkk7.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 天堂露珠 閱讀(1147) 評論(3)  編輯  收藏 所屬分類: Pattern

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


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

      回復  更多評論
      
    # re: [原]合成模式-安全的 2009-06-13 10:49 天堂露珠
    @metadmin
    只是一個例子,相關的理論請參考《Java與模式》。  回復  更多評論
      
    主站蜘蛛池模板: 国产在线观看无码免费视频| 亚洲AV永久无码精品一福利| 一个人免费观看视频在线中文| 日韩成人在线免费视频| 久久亚洲最大成人网4438| 国产va精品免费观看| 亚洲va成无码人在线观看| 免费精品人在线二线三线区别| 亚洲一区二区影视| 女人18毛片特级一级免费视频| 亚洲αⅴ无码乱码在线观看性色| 国产老女人精品免费视频| 免费无码专区毛片高潮喷水| 久久久精品国产亚洲成人满18免费网站 | 日韩国产欧美亚洲v片| 国产成人免费全部网站| 国产亚洲福利一区二区免费看 | 国产成人青青热久免费精品| 菠萝菠萝蜜在线免费视频| 国产亚洲精品精品国产亚洲综合 | 亚洲中文字幕在线无码一区二区| 国产麻豆视频免费观看| 亚洲熟妇AV一区二区三区宅男| 国产大片免费观看中文字幕| 一区二区3区免费视频| 亚洲第一视频网站| 午夜视频在线观看免费完整版| 一级黄色片免费观看| 亚洲性天天干天天摸| 丁香花免费高清视频完整版| 国产亚洲福利精品一区二区| 狠狠色伊人亚洲综合成人| 亚洲国产成人精品女人久久久| 天堂亚洲免费视频| 亚洲丝袜美腿视频| 精品少妇人妻AV免费久久洗澡| 成人无码视频97免费| 亚洲国产午夜精品理论片| 免费一级毛片在线观看| 日韩人妻一区二区三区免费| 亚洲精品中文字幕无码A片老|