当前位置: 首页 > wzjs >正文

网站开发需要用到哪些资料当地的建设工程信息网

网站开发需要用到哪些资料,当地的建设工程信息网,app开发技术路线,全国信息企业查询系统官网概述 组合模式 : Composite Pattern : 是一种结构型设计模式。 **它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。** 核心思想: 让单个对象 和 组合对象 实现相同的接口,这样就可以在不区分是单个对象还是组合对象的情况下,以相…

概述

组合模式 : Composite Pattern : 是一种结构型设计模式。
**它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。**

核心思想:
单个对象组合对象 实现相同的接口,这样就可以在不区分是单个对象还是组合对象的情况下,以相同的方式处理它们。
这极大地简化了客户端代码,并且能够构建出复杂的层次结构。

使用场景:
实际上,当需要用到 树形结构的时候,就可以使用此模式。
例如 : 文件的目录结构,有文件夹和文件 两个类型,文件夹包含文件列表,这就可以是一个树形的结构。

核心组件

Component(组件):这是组合中的抽象基类或接口,声明了所有共有方法,包括操作自身的方法以及操作子部件的方法。
Leaf(叶子节点): 表示没有子部件的组件。Leaf 类实现了 Component 中定义的所有操作,通常情况下 Leaf 不会实现任何操 作子部件的方法,因为它没有子部件。
Composite(组合): 代表包含子部件的组件。Composite 类不仅实现了 Component 中定义的操作,还维护了一个子部件的列表,并实现了相关的管理子部件的方法,如添加、删除或访问子部件等。

案例

案例描述

文件系统中,有 文件夹 和 文件两种类型。
文件夹中包含文件,有 添加、删除、展示文件列表的功能,这就是一个 【Composite 组合对象】;
文件就是 一个叶子节点【Leaf节点】。

类图

在这里插入图片描述

案例代码

接口

public interface FileSystemComponent {// 添加节点,仅 文件夹有具体实现void add(FileSystemComponent component);// 删除节点,仅 文件夹有具体实现void remove(FileSystemComponent component);// 显示节点,void display();
}

文件类

public class FileLeaf implements FileSystemComponent {private String name;// 常规的 构造方法、getter、setter,不再赘述@Overridepublic void add(FileSystemComponent component) {System.out.println("文件节点,不支持添加下一个节点!");}@Overridepublic void remove(FileSystemComponent component) {System.out.println("文件节点,不支持移除对应的节点!");}@Overridepublic void display() {System.out.println("文件 : "+ name);}
}

文件夹类

public class FloderComposite implements FileSystemComponent{private String name;// 这个就是自包含的类型private List<FileSystemComponent> fileList;// 常规的 构造方法、getter、setter,不再赘述@Overridepublic void add(FileSystemComponent component) {if (fileList == null || fileList.isEmpty()){fileList = new ArrayList<>();}fileList.add(component);System.out.println("文件夹 "+name+" 添加文件成功!\n");}@Overridepublic void remove(FileSystemComponent component) {if (fileList != null && !fileList.isEmpty()){fileList.remove(component);}System.out.println("文件夹 "+name+" 移除文件成功!\n");}@Overridepublic void display() {// todo 实际上,此处是个递归操作System.out.println("文件夹 "+name+" 展示 begin-----");if (fileList != null && !fileList.isEmpty()){for (FileSystemComponent fileSystemComponent : fileList) {fileSystemComponent.display();}}System.out.println("文件夹 "+name+" 展示 end----- \n");}
}

使用案例

public class CompositeTest {/*** 目录结构如下* | -- root*      | -- floder1*          | -- file1*      | -- floder2*          | -- file2*/public static void main(String[] args) {// 创建两个文件对象FileLeaf file1 = new FileLeaf("file1");FileLeaf file2 = new FileLeaf("file2");// 创建两个文件夹对象FloderComposite floder1 = new FloderComposite("floder1");FloderComposite floder2 = new FloderComposite("floder2");// 创建一个根目录文件夹对象FloderComposite root = new FloderComposite("root");// 将文件/文件夹 对象添加到 根目录对象中floder1.add(file1);floder2.add(file2);root.add(floder1);root.add(floder2);// 展示一下文件夹中的内容root.display();}
}
运行结果:文件夹 floder1 添加文件成功!文件夹 floder2 添加文件成功!文件夹 root 添加文件成功!文件夹 root 添加文件成功!文件夹 root 展示 begin-----
文件夹 floder1 展示 begin-----
文件 : file1
文件夹 floder1 展示 end----- 文件夹 floder2 展示 begin-----
文件 : file2
文件夹 floder2 展示 end----- 文件夹 root 展示 end----- 

文章转载自:

http://Pl4Gp3gw.qwmsq.cn
http://nACzEe3c.qwmsq.cn
http://V1WQGLl3.qwmsq.cn
http://GFkLtJwu.qwmsq.cn
http://DS7M4uvb.qwmsq.cn
http://mEsPdjmL.qwmsq.cn
http://T7pMGodV.qwmsq.cn
http://e1jVAM0e.qwmsq.cn
http://p48Pfv88.qwmsq.cn
http://DAKWzHGG.qwmsq.cn
http://4u4OgSCt.qwmsq.cn
http://shPL71Li.qwmsq.cn
http://OtbCHyDu.qwmsq.cn
http://e2m946PD.qwmsq.cn
http://JSYiDng3.qwmsq.cn
http://Bf0XBcgR.qwmsq.cn
http://7OFEERi0.qwmsq.cn
http://JFoo0GNq.qwmsq.cn
http://36iJ0HQu.qwmsq.cn
http://szlTt6a1.qwmsq.cn
http://NYgwKfxC.qwmsq.cn
http://jS6UILX7.qwmsq.cn
http://UaFjjvkN.qwmsq.cn
http://pnW46UcC.qwmsq.cn
http://XnfnzKFy.qwmsq.cn
http://4AvL7lG9.qwmsq.cn
http://UAbkEISf.qwmsq.cn
http://0TiWkDhw.qwmsq.cn
http://3lPpGH1w.qwmsq.cn
http://pFKMjdGQ.qwmsq.cn
http://www.dtcms.com/wzjs/744310.html

相关文章:

  • 学校网站管理系统 php58同城网络营销
  • 广州市手机网站建设品牌网站建设与实践
  • 淮北网站网站建设网站策划的基本过程
  • 永久网站建设免费微网站系统
  • 网站系统说明上海徽与章网站建设宗旨
  • 宁夏银川做网站的公司建立网站需要多少钱怎么样
  • 杭州网站设计公司有哪些明年做哪些网站能致富
  • 设计个网站需要怎么做win7怎么做网站域名绑定
  • 网站标题可以修改吗做网站需要会什么编程
  • 网站建设都有那些费用广告推广系统
  • 大气家具行业商城类公司网站织梦模板做网站公司哪家
  • 2003配置网站与2008的区别网站排名怎样做有效
  • 精美公司网站源码网站建设翻译插件
  • 西安网站开发中文html网站模板下载
  • 网站建设的颜色值网页网站培训班
  • 乐从容桂网站建设广州网站建设设计厂家
  • 网站建设经典文章怎么查网站的外链数量
  • 中联建设集团股份有限公司网站做网站收入
  • 建立个人网站的目的保定知名网站建设公司
  • 中国购物网站有哪些网站建设3要素
  • 滕州网站开发提供佛山顺德网站建设
  • 建站系统排行榜广州网站建设 企业
  • 吴江建设局网站农业服务网站建设方案
  • 网站建设工具 公司广州企业网站开发
  • 中山民众网站建设武威网站建设公司有
  • 昆明做网站找哪个公司好企业网站空间
  • 网站新闻前置备案标准网站建设推荐
  • 编辑网站用什么软件设计制作一个企业类型网站
  • dw做网站学习解析个人备案网站做盈利合法吗
  • 郑州做网站找赢博科技上海建筑建材业网招标