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

广州市规划建设局网站建设部建造师强制注销网站

广州市规划建设局网站,建设部建造师强制注销网站,wordpress 分类目录 标签,手机定制网站建设组合模式 组合模式定义使用场景1、文件系统的目录结构:2、组织架构图:3、菜单和菜单项:4、使用场景总结: 角色定义Component 抽象构件角色:Leaf 叶子构件:Composite 树枝构件: 需求背景代码实现Component(抽象构件角色…

组合模式

  • 组合模式定义
    • 使用场景
      • 1、文件系统的目录结构:
      • 2、组织架构图:
      • 3、菜单和菜单项:
      • 4、使用场景总结:
    • 角色定义
      • Component 抽象构件角色:
      • Leaf 叶子构件:
      • Composite 树枝构件:
    • 需求背景
      • 代码实现
        • Component(抽象构件角色)
        • Leaf(叶子构件)
        • Composite(树枝构件)
        • 测试案例
        • 输出结果
        • 案例总结

组合模式定义

将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

使用场景

以下是一些组合模式在生活中的案例:

1、文件系统的目录结构:

文件系统中的目录结构可以看作是一个树形结构,每个目录可以包含文件和子目录。这个例子中,目录就是复合对象,而文件就是单个对象。

2、组织架构图:

组织架构图也可以看作是一个树形结构,每个部门可以包括多个员工和子部门。这个例子中,部门就是复合对象,而员工就是单个对象。

3、菜单和菜单项:

在餐厅中,菜单可以包含多个菜单项,而每个菜单项可以是单个菜品或者是一个子菜单。这个例子中,菜单就是复合对象,而菜单项就是单个对象。

4、使用场景总结:

  1. 维护和展示部分-整体关系的场景
  2. 如树形菜单、文件和文件夹管理从一个整体中能够独立出部分模块或功能的场景。
  3. 只要是树形结构,就考虑使用组合模式

角色定义

Component 抽象构件角色:

 定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性.

Leaf 叶子构件:

叶子对象,其下再也没有其他的分支,也就是遍历的最小单位。

Composite 树枝构件:

树枝对象,它的作用是组合树枝节点和叶子节点形成一个树形结构

需求背景

使用组合模式实现对文件和文件夹的管理

使用组合模式实现对文件和文件夹的管理

代码实现

Component(抽象构件角色)

public abstract class Component {protected String name;public Component(String name) {this.name = name;}public abstract void add(Component c);public abstract void remove(Component c);public abstract void display(int depth);
}

Leaf(叶子构件)

public class File extends Component {public File(String name) {super(name);}public void add(Component c) {System.out.println("不能添加文件到文件");}public void remove(Component c) {System.out.println("不能从文件中删除文件");}public void display(int depth) {for (int i = 0; i < depth; i++) {System.out.print("-");}System.out.println(name);}
}

Composite(树枝构件)

import java.util.ArrayList;
import java.util.List;public class Folder extends Component {private List<Component> children;public Folder(String name) {super(name);children = new ArrayList<>();}public void add(Component c) {children.add(c);}public void remove(Component c) {children.remove(c);}public void display(int depth) {for (int i = 0; i < depth; i++) {System.out.print("-");}System.out.println(name);for (Component c : children) {c.display(depth + 2);}}
}

测试案例

public class Test {public static void main(String[] args) {Component root = new Folder("C:");Component folder1 = new Folder("Program Files");Component folder2 = new Folder("Users");Component file1 = new File("readme.txt");Component file2 = new File("program.exe");root.add(folder1);root.add(folder2);folder1.add(file2);folder2.add(file1);root.display(0);}
}

输出结果

C:-Program Files--program.exe-Users--readme.txt

案例总结

  1. 组合模式可以很好地管理树形结构,它将复杂的结构分解成了一个个简单的对象,从而使得代码更加简洁和易于维护。
  2. 在实现过程中,我们需要定义抽象构件角色、叶子构件和树枝构件,其中叶子构件表示最基本的对象,而树枝构件表示复合对象。
  3. 在客户端中,我们可以通过组合叶子和树枝构件来构建复杂的结构,并且可以通过抽象构件角色来实现对所有对象的统一管理。
http://www.sczhlp.com/news/68078/

相关文章:

  • 网站做动态图片大全自动做设计的网站
  • 安徽网站建设公司排名wordpress 魔客
  • 单页网站规划设计书电子商城系统开发模块
  • 网址导航网站如何推销产品给客户
  • 建行企业网站服装营销方式和手段
  • 做网站商铺模板网站的建设需要虚拟机吗
  • 如何做酒店网站wordpress更改邮箱
  • 企业淘宝网站备案东莞热点网站建设
  • 湖北哪里需要建网站河南郑州消费情况
  • 炫酷网站欣赏网页模板的作用
  • 微信小程序格泰网站建设WordPress推荐主机配置
  • 普科科技高频电流探头:精准捕捉快速电流瞬态的利器
  • 微网站和h5有什么区别如何制作自己的微信公众号
  • 广州建网站多少钱建设网站有哪些步骤
  • 河北工程大学网站开发成本网站布局优化
  • 自己做一个音乐网站怎么做asp网站开发招聘
  • 易基因:中国科学家方磊/谷晓峰团队通过群体DNA甲基化多态性分析 揭示表观遗传育种在作物改良中的巨大潜力(国人佳作) :Cell Res/IF25.9
  • 【OpenCV】2 读取视频帧
  • 国内IT企业的底子到底有多薄弱?
  • 鼎湖网站建设公司江门专业网站建设系统
  • 网站平台在线提交功能代码生成器手机版
  • 南昌网站设计企业对网站建设的意见
  • 如何为公司做网站网站26个页面收费
  • 自助网站建设工具如何在手机上编程游戏
  • 太原免费建站网站页面相关产品链接怎么做
  • 做一电影网站怎么赚钱吗个人简历手机版免费
  • 网站风险解除电子商务营销师证书含金量
  • 公司网站工商备案怎么做wordpress 登陆后返回
  • 安徽酒店网站建设cms网站管理
  • 厦门哪家公司做网站制作网页的颜色模式为