`
songkang666
  • 浏览: 105576 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Composite悬而未决

 
阅读更多
        Composite模式是构造型的设计模式之一,通过递归手段来构造诸如文件系统之类的树形的对象结构;Composite模式所代表的数据构造是一群具有统一接口界面的对象集合,并可以通过一个对象来访问所有的对象(遍历)。
      



Component<-----> MediaElement

public interface MediaElement {
        public void add(MediaElement);
        public void remove(MediaElement);
        public void display();
}


Leaf <-----> Media

public class Media implements MediaElement {
        String  name;
        mediaType  type;
        public void display() {
                // 根据mediaType来决定显示的方式,对图片、网页一直显示,对视频文件,一直循环播放。
        }
}


Composite <-----> MediaList 、 TimeList 、 DateList

public class MediaList implements MediaElement {
        time  duration; // 针对一个图片、网页显示的时长,针对视频,设为null;
        ArrayList<Media> list; // 多个Media组成的列表
        public void add(Media) {
                // 添加一个Media对象到list;
        }
        public void remove(Media) {
                // 从list中删除一个Media对象;
        }
        public void display() {
                loop
                        foreach(list)
                                // 若list的当前Media为图片或网页,则调用其display,并在duration时间后,结束display。
                                // ???若为视频,这里好像有点问题
        }
}


public class TimeList implements MediaElement {
        time  startTime;  // 开始时间
        time  endTime;    // 结束时间
        ArrayList<MediaList> list;  // 多个MediaList组成的列表
        public void add(MediaList) {
                // 添加一个MediaList对象到list;
        }
        public void remove(MediaList) {
                // 从list中删除一个MediaList对象;
        }
        public void display() {
                // 到startTime时,开始
                loop {
                        foreach(list) {
                               // 调用MediaList的display
                        }
                        // 到达结束时间后,结束 。
                }
        }
}


public class DateList implements MediaElement {
        date var1;
        ArrayList<TimeList> list;
        public void add(TimeList) {
                // 添加一个TimeList对象到list;
        }
        public void remove(TimeList) {
                // 从list中删除一个TimeList对象;
        }
        public void display() {
                // 到指定日时,开始
                foreach(list) {
                       // 调用TimeList的display
                       // list遍历一遍后,结束。
                }
        }
}


呃。。。不知道我依照高楼大厦建了个小屋,还是挖了个地洞,先记下来再说,设计模式的具体应用有点难。
分享到:
评论
1 楼 nonocast 2013-04-17  
比较抽象而已,要习惯抽象需要一个过程,上手composite确实有难度。

相关推荐

    DFT Composite Suite Pro使用手册

    ### DFT Composite Suite Pro 使用手册知识点解析 #### 一、软件概述 **DFT Composite Suite Pro**是一款专为Adobe After Effects (AE)平台设计的强大视觉特效合成工具包。该套件集成了高级软件设计与丰富的电影...

    qualcomm usb composite device 9025

    qualcomm usb composite device 9025 www@wujupeng.com

    USB COMPOSITE API for Linux

    ### USB Composite API for Linux #### 10.1 Composite 设备简介 USB Composite 类是指能够支持多种设备功能的 USB 设备。例如,一个 USB 设备可能同时具备鼠标和键盘的功能。这种类型的设备与只具备单一功能的...

    Composite2011中文手册

    《Composite2011中文手册》是一份专为合成软件用户设计的详尽参考资料,它提供了全面的指导和深入理解该软件所需的各项功能。作为一款处理图像和视频的专业工具,Composite2011在视觉效果制作领域具有广泛的应用。这...

    USB Composite Device

    USB Composite Device

    SAMSUNG Mobile USB Composite Device

    "三星手机连电脑的驱动——SAMSUNG Mobile USB Composite Device"是用于在Windows操作系统中连接和管理三星智能手机的重要软件组件。这个驱动程序允许用户通过USB接口将手机与计算机进行通信,实现数据同步、充电、...

    Microsoft Image Composite Editor

    微软MSR的图像合成软件,简单的拼接,效果还不错 Microsoft Image Composite Editor

    Composite Pattern(组合模式)

    **组合模式(Composite Pattern)详解** 组合模式是一种结构型设计模式,它将对象组织成树形结构,使得用户可以对单个对象和对象集合进行统一操作。这种模式在处理部分与整体关系时非常有用,允许我们一致地处理...

    2.4G无线传输+USB Composite Device

    标题中的“2.4G无线传输+USB Composite Device”指的是在一个STM32微控制器上同时实现2.4GHz无线通信和USB复合设备的功能。2.4GHz无线传输通常用于低功耗、短距离的数据通信,如蓝牙或Wi-Fi。而USB Composite Device...

    usb composite device usb驱动程序

    USB复合设备(USB Composite Device)是指能够同时支持多种USB设备类别的设备,比如鼠标和键盘的组合、打印机和扫描仪的组合等。这样的设备在USB规范中被定义为具有多个功能集,每个功能集对应一个特定的USB设备类型。...

    Composite模式

    **复合模式(Composite Pattern)**是一种结构型设计模式,它允许我们构建复杂的对象结构,并能像操作单个对象一样处理整个结构。在计算机科学中,这种模式尤其适用于表示部分-整体层次结构,使得用户可以一致地处理...

    C++ Composite模式

    **C++ Composite模式详解** Composite模式是设计模式中的一种结构型模式,它允许你将对象组织成树形结构,以表示“部分-整体”的层次结构。在C++中,Composite模式使得客户可以对单个对象和对象组合进行一致的处理...

    Microsoft.Practices.CompositeUI.WinForms.dll

    《Microsoft.Practices.CompositeUI.WinForms.dll:探索与应用》 在.NET框架的开发环境中,Microsoft.Practices.CompositeUI.WinForms.dll库扮演着一个重要的角色。它作为Composite UI Application Block(复合UI...

    impact-composite_复合材料冲击_impact_ABAQUS_composite_

    本资料包"impact-composite_复合材料冲击_impact_ABAQUS_composite_"聚焦于探讨如何利用ABAQUS对复合材料进行冲击响应分析,特别是关注设定不同初速度和固定速度条件下的影响。 复合材料是由两种或更多种具有不同...

    kurento-tutorial-composite-js

    《Kurento-Tutorial-Composite-JS:构建多用户视频会议》 Kurento是一个强大的开源WebRTC媒体服务器,它提供了构建实时通信应用所需的工具和功能。本教程以"Kurento-tutorial-composite-js"为例,深入讲解如何在...

    Composite.zip

    在`Composite.zip`这个文件中,包含的示例应该展示了如何使用组合模式来实现这一概念。 在设计模式的世界里,组合模式是一种非常实用的工具,尤其在处理具有树形结构的数据时。它将个体对象(叶子对象)和组合对象...

    Microsoft.Practices.CompositeUI.dll

    《深入理解Microsoft.Practices.CompositeUI.dll:DLL文件在软件开发中的核心作用》 Microsoft.Practices.CompositeUI.dll是微软公司开发的一个动态链接库(DLL)文件,它属于微软的Composite UI应用程序框架,该...

    CAB Composite UI Application Block December

    Composite UI Application Block December 2005 (C#)

    Microsoft.Practices.CompositeUI.Windows.dll )

    Microsoft.Practices.CompositeUI.Windows.dll )

Global site tag (gtag.js) - Google Analytics