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

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

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

    人在江湖

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      82 Posts :: 10 Stories :: 169 Comments :: 0 Trackbacks

    Motivation

    When dealing with tree-structured data, programmers often have to discriminate between a leaf-node and a branch. This makes code more complex, and therefore, error prone. The solution is an interface that allows treating complex and primitive objects uniformly. In object-oriented programming, a composite is an object designed as a composition of one-or-more similar objects, all exhibiting similar functionality. This is known as a "[2]. The key concept is that you can manipulate a single instance of the object just as you would manipulate a group of them. The operations you can perform on all the composite objects often have a least common denominator relationship. For example, if defining a system to portray grouped shapes on a screen, it would be useful to define resizing a group of shapes to have the same effect (in some sense) as resizing a single shape.

       1: import java.util.ArrayList;
       2:  
       3: /** "Component" */
       4: interface Graphic {
       5:  
       6:     //Prints the graphic.
       7:     public void print();
       8: }
       9:  
      10: /** "Composite" */
      11: class CompositeGraphic implements Graphic {
      12:  
      13:     //Collection of child graphics.
      14:     private List<Graphic> mChildGraphics = new ArrayList<Graphic>();
      15:  
      16:     //Prints the graphic.
      17:     public void print() {
      18:         for (Graphic graphic : mChildGraphics) {
      19:             graphic.print();
      20:         }
      21:     }
      22:  
      23:     //Adds the graphic to the composition.
      24:     public void add(Graphic graphic) {
      25:         mChildGraphics.add(graphic);
      26:     }
      27:  
      28:     //Removes the graphic from the composition.
      29:     public void remove(Graphic graphic) {
      30:         mChildGraphics.remove(graphic);
      31:     }
      32: }
      33:  
      34: /** "Leaf" */
      35: class Ellipse implements Graphic {
      36:  
      37:     //Prints the graphic.
      38:     public void print() {
      39:         System.out.println("Ellipse");
      40:     }
      41: }
      42:  
      43: /** Client */
      44: public class Program {
      45:  
      46:     public static void main(String[] args) {
      47:         //Initialize four ellipses
      48:         Ellipse ellipse1 = new Ellipse();
      49:         Ellipse ellipse2 = new Ellipse();
      50:         Ellipse ellipse3 = new Ellipse();
      51:         Ellipse ellipse4 = new Ellipse();
      52:  
      53:         //Initialize three composite graphics
      54:         CompositeGraphic graphic = new CompositeGraphic();
      55:         CompositeGraphic graphic1 = new CompositeGraphic();
      56:         CompositeGraphic graphic2 = new CompositeGraphic();
      57:  
      58:         //Composes the graphics
      59:         graphic1.add(ellipse1);
      60:         graphic1.add(ellipse2);
      61:         graphic1.add(ellipse3);
      62:  
      63:         graphic2.add(ellipse4);
      64:  
      65:         graphic.add(graphic1);
      66:         graphic.add(graphic2);
      67:  
      68:         //Prints the complete graphic (four times the string "Ellipse").
      69:         graphic.print();
      70:     }
      71: }
    posted on 2011-02-13 20:30 人在江湖 閱讀(701) 評論(0)  編輯  收藏 所屬分類: design pattern
    主站蜘蛛池模板: 最好看的中文字幕2019免费| 亚洲av无码成人精品区| 日韩精品亚洲专区在线影视| 国产国拍精品亚洲AV片| 亚洲电影免费观看| 免费人成网上在线观看| 亚洲精品偷拍无码不卡av| 暖暖免费高清日本一区二区三区 | 国产色在线|亚洲| 亚洲成AV人在线观看网址| 91精品手机国产免费| 久久久久亚洲精品无码网址色欲| 亚洲人成图片小说网站| 精品剧情v国产在免费线观看| 九九精品成人免费国产片| 亚洲欧美日韩中文高清www777| 亚洲AV无码专区在线播放中文| 免费观看美女裸体网站| 国产在线精品免费aaa片| 国产成人亚洲综合a∨| 亚洲天堂电影在线观看| 伊人久久精品亚洲午夜| 性色av免费观看| 99热在线免费观看| 一级成人a做片免费| 亚洲成在人线aⅴ免费毛片 | 亚洲欧洲免费无码| 亚洲高清无在码在线无弹窗| 亚洲国产成人久久精品99| 最近免费中文字幕4| 免费看又黄又无码的网站| 一本一道dvd在线观看免费视频| 国产亚洲精品成人AA片| 亚洲综合一区二区国产精品| 久久久亚洲精品蜜桃臀| 国产精品久久免费视频| 毛色毛片免费观看| 18勿入网站免费永久| 18禁男女爽爽爽午夜网站免费 | 亚洲av手机在线观看| 午夜老司机免费视频|