概述
先给个代码地址吧
https://github.com/yyfyyf1994/knowledge/tree/master/src/yyf/designpatterns/composite
组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
组合模式主要的结构:
1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。
2.Leaf 在组合中表示叶子结点对象,叶子结点没有子结点。
3.Composite 定义有枝节点行为,用来存储子部件,在Component接口中实现与子部件有关操作,如增加(add)和删除(remove)等。
本代码案例描述了,一个文件系统的结构。其中Composite 为为文件夹Leaf 为文件,对待一个文件系统中的文件跟文件夹一致性对待去遍历。
具体代码在github仓库里面
package yyf.designpatterns.composite;
import yyf.designpatterns.composite.comonpent.AbstractFile;
import yyf.designpatterns.composite.composite.Folder;
import yyf.designpatterns.composite.leaf.ImageFile;
import yyf.designpatterns.composite.leaf.TextFile;
import yyf.designpatterns.composite.leaf.VideoFile;
/**
* 测试组合模式
*
* @author Yu Yufeng
*
*/
public class Test {
public static void main(String[] args) {
AbstractFile folder1 = new Folder("文件夹1");
AbstractFile folder2 = new Folder("文件夹2");
AbstractFile folder3 = new Folder("文件夹3");
AbstractFile folder4 = new Folder("文件夹4");
AbstractFile image1 = new ImageFile("图片1");
AbstractFile image2 = new ImageFile("图片2");
AbstractFile video1 = new VideoFile("视频1");
AbstractFile text1 = new TextFile("文本1");
folder1.add(folder2);
folder1.add(folder3);
folder3.add(text1);
folder2.add(folder4);
folder2.add(image1);
folder2.add(image2);
folder4.add(video1);
folder1.display(0);
}
}
最后
以上就是大意金鱼为你收集整理的设计模式——组合模式+案例的全部内容,希望文章能够帮你解决设计模式——组合模式+案例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复