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

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

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

    隨筆 - 117  文章 - 72  trackbacks - 0

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

    常用鏈接

    常用設(shè)置
    常用軟件
    常用命令
     

    訂閱

    訂閱

    留言簿(7)

    隨筆分類(130)

    隨筆檔案(123)

    搜索

    •  

    積分與排名

    • 積分 - 156615
    • 排名 - 390

    最新評論

    [關(guān)鍵字]:java,design pattern,設(shè)計(jì)模式,《Java與模式》學(xué)習(xí),composite,合成模式
    [環(huán)境]: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);
        }
    }
    運(yùn)行結(jié)果:

    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 天堂露珠 閱讀(1153) 評論(3)  編輯  收藏 所屬分類: Pattern

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


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

      回復(fù)  更多評論
      
    # re: [原]合成模式-安全的 2009-06-13 10:49 天堂露珠
    @metadmin
    只是一個例子,相關(guān)的理論請參考《Java與模式》。  回復(fù)  更多評論
      
    主站蜘蛛池模板: 久久午夜夜伦鲁鲁片无码免费| 国产亚洲精品线观看动态图| 成年男女男精品免费视频网站| 一本色道久久88亚洲综合| 久久香蕉国产线看观看亚洲片| 亚洲中文字幕无码中文| 最新国产乱人伦偷精品免费网站| 德国女人一级毛片免费| 亚洲VA中文字幕不卡无码| 热久久这里是精品6免费观看 | 亚洲国产精品张柏芝在线观看| 免费国产黄网站在线看| 中文字幕无码视频手机免费看| 亚洲av永久无码精品漫画| 可以免费观看的国产视频| 亚洲午夜av影院| 在线观看免费亚洲| 手机看片国产免费永久| 久久久久久a亚洲欧洲AV| 中文字幕在线视频免费| 内射无码专区久久亚洲| 一级毛片免费播放试看60分钟| 永久免费AV无码网站在线观看| 亚洲国产日韩在线人成下载| 日韩免费的视频在线观看香蕉| 亚洲丝袜美腿视频| 久久青草精品38国产免费| 久久久久亚洲精品日久生情 | 无套内谢孕妇毛片免费看看| 综合亚洲伊人午夜网 | 精品亚洲A∨无码一区二区三区| 羞羞视频免费网站在线看| 亚洲国产成人久久精品99 | 免费无码A片一区二三区| 亚洲精品一卡2卡3卡三卡四卡| 在线看片免费人成视频久网下载| 亚洲精品无码久久久久久久| 国产无遮挡色视频免费视频| 在线亚洲精品视频| 亚洲AV日韩精品久久久久久久| 四虎免费在线观看|