爱问知识人 爱问教育 医院库

Composite模式及其在JSF中的应用是什么?

首页

Composite模式及其在JSF中的应用是什么?

Composite模式及其在JSF中的应用是什么?

提交回答

全部答案

    2017-07-28 12:20:08
  •   
    一 学习背景   在学习关于JSF组件时涉及到了composite模式,于是就查看一些资料,以下是自己对这种模式的理解。二  自己整理的一些资料(见参考资料)1。composite模式意在组成任意复杂度的整体--部分组件层次结构,同时将单个组件或复合组件视为统一的接口。
      树形组织结构就是其中一种表现形式。树形结构中有叶子结点和非叶子结点(根结点是特例),非叶子结点可以添加,删除(add(),delete())子结点,获取子结点(getChild()),叶子结点没有;此外树结构的所有节点还有共同的操作(operator())。
      用户界面通常由两种基本类型的组件构造:基本组件和容器组件,容器组件可以在其内部嵌套任意数目的组件,而基本组件则不行。使用这两种组件类型,开发者可以建立更强大的组件,进而创建多姿多彩的用户界面。但是在与复杂的组件层次结构打交道时,必须在容器组件和基本组件之间进行区分,比较麻烦,composite提供了一种解决方案。
      适用它的情况:a。 要表现“部分-整体”的层次结构时b。 希望在事件组件层次中,同等对待复合组件与单个组件。2。 通过下面的示例来理解示例1: 基类shape 类有两个派生类Circle和Square(相当于叶子结点或者是单个组件),第三个派生类CompositeShape是个组合体(相当于非叶子结点或者是容器组件),它持有一个含有多个shape实例的列表,当调用CompositeShape中的draw()时,它就把这个方法委托给列表中的每一个实例。
       对于系统而言,一个CompositeShape实例就像是一个独立的shape,可以把它传给使用shape的方法或者对象。实际上,它只是一组shape实例的proxy。程序:Shape。java: Public interface Shape {     Public void draw(); } CompositeShape。
      java: [code]Public class CompositeShape implements Shape {   private Vector Comshape = new Vector();   public void add(Shape shape) {     Comshape。
      add(shape);   }   Public void draw() {     for( int i = 0; i < comshape。size(); i ++ ) {        Shape shape = (Shape) comshape。
      elementAt(i);        Shape。draw();     }   } } 。

    迟***

    2017-07-28 12:20:08

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):