<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

    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 人在江湖 閱讀(710) 評論(0)  編輯  收藏 所屬分類: design pattern
    主站蜘蛛池模板: 91禁漫免费进入| 在线免费视频一区| 午夜视频免费成人| 亚洲精品无码久久久久AV麻豆| 亚洲成a人片在线观看中文动漫 | 亚洲免费视频观看| 美女被暴羞羞免费视频| 一级毛片**不卡免费播| 国产hs免费高清在线观看| 亚洲一区二区电影| jizzjizz亚洲日本少妇| 最近免费mv在线电影| 亚洲国产精品成人网址天堂| 亚洲成年人电影在线观看| 羞羞视频在线观看免费| 67pao强力打造高清免费| 日韩精品亚洲专区在线观看| 亚洲视频在线观看免费视频| 黄色网址在线免费观看| 国产免费女女脚奴视频网 | 亚洲国产日韩成人综合天堂| 亚洲精品视频在线免费| 一级毛片免费视频网站| a毛片基地免费全部视频| 亚洲日韩小电影在线观看| 亚洲欧美不卡高清在线| 99精品视频在线免费观看| 亚洲人成电影网站国产精品| 亚洲综合偷自成人网第页色| 日本人成在线视频免费播放| 免费人成无码大片在线观看| 亚洲mv国产精品mv日本mv| a级毛片免费在线观看| 免费jjzz在在线播放国产| 久久精品国产99国产精品亚洲| 叮咚影视在线观看免费完整版| 宅男666在线永久免费观看 | 精品亚洲AV无码一区二区三区| 182tv免费视频在线观看| 亚洲国产成人精品91久久久| 亚洲中文无码永久免|