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

做介绍的英文网站百度灰色关键词代做

做介绍的英文网站,百度灰色关键词代做,软件程序开发公司,专业做律师网站的公司文章目录 前言一、介绍二、详细分析1.核心组成2.实现步骤3.代码示例4.优缺点优点缺点 5.使用场景 总结 前言 组合模式是将对象组合成树形结构来表现"整体/部分"层次结构,可以更好的实现管理操作。 一、介绍 组合设计模式又叫部分整体模式,将…

文章目录

  • 前言
  • 一、介绍
  • 二、详细分析
    • 1.核心组成
    • 2.实现步骤
    • 3.代码示例
    • 4.优缺点
      • 优点
      • 缺点
    • 5.使用场景
  • 总结


前言

组合模式是将对象组合成树形结构来表现"整体/部分"层次结构,可以更好的实现管理操作。


一、介绍

组合设计模式又叫部分整体模式,将对象组合成树形结构来表现"整体/部分"层次结构,可以更好的实现管理操作。使用户可以通过一致的方法操作单个对象或组合对象,整体和部分的基本操作多数都是一样的,也会有不同的地方。组合模式可以用一棵树来表示。

二、详细分析

1.核心组成

  • 组合部件(Component):它是一个抽象接口,表示树根;
  • 合成部件(Composite):和组合部件类似,也有自己的子节点;
  • 叶子(Leaf):在组合中表示子节点对象,注意他是没有子节点。
    公司底下有部门,部门底下有职位。以下所示:
    在这里插入图片描述

2.实现步骤

  1. 创建组合部件,他是个抽象类,定义部件中的属性和方法;
  2. 创建合成部件,继承组合部件,创建集合属性,用来管理叶子节点;
  3. 创建叶子节点,继承组合部件,不能添加子节点。

3.代码示例

组合部件

/*** 组合部件*/
public abstract class Company {private String job;public Company(String job) {this.job = job;}public String getJob() {return job;}public void setJob(String job) {this.job = job;}/*** 添加职位*/protected abstract void addJob(Company company);/*** 删除职位*/protected abstract void removeJob(Company company);/*** 展示职位* @param depth 显示层级*/protected abstract void display(int depth);}

合成部件

/*** 合成部件*/
public class Department extends Company {List<Company> companyList = new ArrayList<Company>();public Department(String job) {super(job);}@Overrideprotected void addJob(Company company) {companyList.add(company);}@Overrideprotected void removeJob(Company company) {companyList.remove(company);}@Overrideprotected void display(int depth) {StringBuffer str= new StringBuffer();for (int i=0;i<depth;i++){str.append("-");}// 输出System.out.println(str.toString()+this.getJob());//子层级再加2for (Company company:companyList){company.display(depth+2);}}}

叶子节点

/*** 叶子节点*/
public class Job extends Company{public Job(String job) {super(job);}@Overrideprotected void addJob(Company company) {}@Overrideprotected void removeJob(Company company) {}@Overrideprotected void display(int depth) {StringBuffer str= new StringBuffer();for (int i=0;i<depth;i++){str.append("-");}// 输出System.out.println(str.toString()+this.getJob());}
}

测试类:

    public static void main(String[] args) {// 创建根Company company = new Department("北京公司");// 创建部门节点Company dept = new Department("软件开发部门");Company dept2 = new Department("软件测试部门");Company dept3 = new Department("产品部门");// 创建叶子节点并添加至部门Company job= new Job("软件开发经理");Company job1 = new Job("软件开发工程师");dept.addJob(job);dept.addJob(job1);Company job2 = new Job("软件测试工程师");dept2.addJob(job2);Company job3 = new Job("产品经理");dept3.addJob(job3);company.addJob(dept);company.addJob(dept2);company.addJob(dept3);company.display(0);}

结果
在这里插入图片描述

4.优缺点

优点

  • 组合模式定义了一组统一的接口,可以用来处理单个对象和组合对象,从而简化了客户端代码;
  • 组合模式使得可以很自然地将对象和它们的行为组织在一起,提高了代码的内聚性;
  • 新增加的叶节点类型或树枝节点类型可以无缝集成到现有系统中,无需修改现有代码;
  • 组合模式使得对象的添加和删除变得容易,因为它们可以统一地被添加到树形结构中。

缺点

  • 客户端需要花更更多时间理理清类之间的层次关系;
  • 组合模式要求所有叶子节点和树枝节点都实现相同的接口,这可能限制了对象的灵活性。

5.使用场景

  • 当想表达对象的部分-整体的层次结构,比如公司结构、菜单、文件夹等等;
  • 当我们的要处理的对象可以生成一颗树形结构,我们要对树上的节点和叶子进行操作时,它能够提供一致的方式,而不用考虑它是节点还是叶子。

总结

以上就是本篇的内容,本文简单介绍了组合模式的组成、优缺点、使用场景等,提供了代码示例。

http://www.wangmingla.cn/news/50631.html

相关文章:

  • 重庆网站推免费二级域名注册网站
  • app网站下载免费seo企业优化方案
  • wordpress用户修改头像优化营商环境的措施建议
  • 成都小程序开发一个多少钱啊北京网站优化技术
  • 枝江市住房和城乡建设局网站网球排名即时最新排名
  • 高佣联盟做成网站怎么做洛阳网站建设优化
  • 建设厅网站密码找回ks免费刷粉网站推广
  • 自己怎么建设网站广州软件系统开发seo推广
  • 在韩国申请网站域名需要什么临汾网络推广
  • 网站收益外包优化网站
  • 网站定制设计价目表资源链接搜索引擎
  • 攀枝花城市建设网站免费职业技能培训网站
  • 怎么进网站源码的后台百度竞价推广技巧
  • 福田网站建设实训步骤一键优化清理加速
  • 有没有那个网站是做点心的百度seo
  • 做公司网站主要需要什么科目seo搜索引擎优化薪酬
  • 信阳网站设计网络营销大师排行榜
  • 怎么做自动发卡的网站网络营销的主要特点有哪些
  • 网站制作案例哪家强windows优化大师功能
  • 建立门户网站的步骤sem是什么意思啊
  • 芸志建站怎么建立网站抖音seo优化
  • wordpress quizzin网站seo的优化怎么做
  • 荼叶公司网站模板建站公司最新报价
  • 游戏网站建设杭州网上推广
  • 如何设计营销 网站建设网站流量统计分析报告
  • 株洲网站推广优化站长工具收录
  • Axure只是做网站吗有什么平台可以发广告
  • 腾讯做网站google关键词排名优化
  • 有哪些建设网站公司吗seopeixun
  • 如何建设网站设计徐州seo排名收费