首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式学习十二:组合模式

2012-06-27 
设计模式学习十二:组合模式一.概念???? 组合模式允许你将对象组合成树形结构来表现整体/部分层次结构。组

设计模式学习十二:组合模式

一.概念

???? 组合模式允许你将对象组合成树形结构来表现"整体/部分"层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。

?

二.UML

设计方式学习十二:组合模式

    Component(对象接口),定义了对象可以做的事情。Leaf(叶子结点对象)。Composite(其它结点对象)。

三.实例分析

???? 网上购物的时候,我们会发现,快递时一层一层下来的,我在北京朝阳区六里屯街道买了一个东西,物品会依次经过六里屯街道-朝阳区-深圳-深圳南山这样的顺序邮寄到我手里。我们可以看出,每个地区都会有一个大的投递点,然后再往下细分。从中,我抽象了这么几个类。说明:顺丰快递总公司实际在深圳,但为了更清楚的说明组合模式,我将"顺丰公司"放在了一个更高的层次。

设计方式学习十二:组合模式

?

设计方式学习十二:组合模式

?

???? SFCompany

设计方式学习十二:组合模式

?

四.使用场景及使用感受

    需求中体现的是整体和部分的层次关系,以及用户希望忽略整体与部分的不同,统一的使用整体对象和部分对象时,就应该考虑组合模式。组合模式让你可以优化处理递归或分级数据结构。如文件系统结构。

?

public static void showDetails(File f) {//如果是目录if(f.isDirectory()){//拿到跟目录下所有文件,迭代后递归File[] files = f.listFiles();for(File file : files) {showDetails(file);}//如果是文件,打印}else {System.out.println(f.getAbsolutePath());}}

热点排行