返回顶部
首页 > 资讯 > 精选 >在JAVA项目中组合模式的实现原理是什么
  • 452
分享到

在JAVA项目中组合模式的实现原理是什么

javaava组合模式 2023-05-31 08:05:20 452人浏览 薄情痞子
摘要

今天就跟大家聊聊有关在JAVA项目中组合模式的实现原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。组合模式:将不同但是相关的对象组合成树形结构以实现“部分-整体”的层次结构,

今天就跟大家聊聊有关在JAVA项目中组合模式的实现原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

组合模式:将不同但是相关的对象组合成树形结构以实现“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

* 模式角色组成:

Component对象: 是组合中的对象接口,是所有类共有的接口。是用于统一定义整体中的部分。

Leaf对象: 整体中的部分,没有下一级。

Composite对象: 用来存储子部件,在Component接口中实现与部分有关操作。

以公司构成为例,比如公司有总公司,总公司下有分公司,分公司下有办事处等。构成一个树形结构。

public abstract class Firm {  private String firmName;// 公司名称  public Firm(String firmName) {    this.firmName = firmName;  }  public String getFirmName() {    return firmName;  }  public void setFirmName(String name) {    this.firmName = name;  }  protected abstract void append(Firm firm);// 添加公司如:新增分公司  protected abstract void romove(Firm firm);// 删除公司:如因故关闭分公司  protected abstract void show(int level);//显示公司所在的层级:总公司,分公司,办事处等}
public class BranchFirm extends Firm {  private List<Firm> cList;  public BranchFirm(String name) {    super(name);    cList = new ArrayList<Firm>();  }  @Override  protected void append(Firm firm) {    cList.add(firm);  }  @Override  protected void show(int depth) {    StringBuilder sb = new StringBuilder("");    for (int i = 0; i < depth; i++) {      sb.append("*");    }    System.out.println(new String(sb) + this.getFirmName());    for (Firm c : cList) {      c.show(depth + 2);    }  }  @Override  protected void romove(Firm firm) {    // TODO Auto-generated method stub    cList.remove(firm);  }}
public class MarketDepartment extends Firm {  public MarketDepartment(String name) {    super(name);  }  @Override  protected void append(Firm company) {  }  @Override  protected void show(int depth) {    // TODO Auto-generated method stub    StringBuilder sb = new StringBuilder("");    for (int i = 0; i < depth; i++) {      sb.append("*");    }    System.out.println(new String(sb) + this.getFirmName());  }  @Override  protected void romove(Firm company) {  }}
public class MinTechDepartment extends Firm {  public MinTechDepartment(String name) {    super(name);  }  @Override  protected void append(Firm firm) {  }  @Override  protected void show(int depth) {    StringBuilder sb = new StringBuilder("");    for (int i = 0; i < depth; i++) {      sb.append("*");    }    System.out.println(new String(sb) + this.getFirmName());  }  @Override  protected void romove(Firm company) {  }}
public class Test {  public static void main(String[] args) {    // TODO Auto-generated method stub    Firm head = new BranchFirm("深圳XX集团有限公司");// 公司总部    head.append(new MarketDepartment("深圳XX集团有限公司--市场部"));    head.append(new MinTechDepartment("深圳XX集团有限公司--技术部"));    Firm jsFirm = new BranchFirm("深圳XX集团有限公司-江苏分公司");    jsFirm.append(new MarketDepartment("深圳XX集团有限公司-江苏分公司市场部"));    jsFirm.append(new MinTechDepartment("深圳XX集团有限公司-江苏分公司技术部"));    Firm szFirm = new BranchFirm("深圳XX集团有限公司-江苏分公司-苏州办事处");    szFirm.append(new MinTechDepartment("深圳XX集团有限公司-江苏分公司-苏州办事处技术部"));    szFirm.append(new MarketDepartment("深圳XX集团有限公司-江苏分公司-苏州办事处市场部"));    jsFirm.append(szFirm);    // 如果还需要新增分公司或办事处等,就继续按照上述操作处理    head.append(jsFirm);    head.show(0);  }}

看完上述内容,你们对在JAVA项目中组合模式的实现原理是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 在JAVA项目中组合模式的实现原理是什么

本文链接: https://lsjlt.com/news/224455.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在JAVA项目中组合模式的实现原理是什么
    今天就跟大家聊聊有关在JAVA项目中组合模式的实现原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。组合模式:将不同但是相关的对象组合成树形结构以实现“部分-整体”的层次结构,...
    99+
    2023-05-31
    java ava 组合模式
  • 在JAVA项目中实现建造者模式的原理是什么
    本篇文章给大家分享的是有关在JAVA项目中实现建造者模式的原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。建造者模式:将复杂对象的构造与它的实现相分离,让相同的构建过程...
    99+
    2023-05-31
    java ava 建造者模式
  • Java项目中适配器模式的原理是什么
    Java项目中适配器模式的原理是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。适配器模式是把一个类的接口适配成用户所期待的,使得原本由于接口不兼容而不能一起工作的一些类可以...
    99+
    2023-05-31
    java ava 适配器模式
  • java 中集合的实现原理是什么
    本篇文章给大家分享的是有关java 中集合的实现原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、HashMappublic class Hash...
    99+
    2023-06-20
  • java中怎么实现组合模式
    本篇文章给大家分享的是有关java中怎么实现组合模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。组合模式组合模式(Composite Pattern)又叫部分整体模式,是用于...
    99+
    2023-06-20
  • java项目中实现CopyOnWriteArrayList并发容器的原理是什么
    今天就跟大家聊聊有关java项目中实现CopyOnWriteArrayList并发容器的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。CopyOnWriteArrayLis...
    99+
    2023-05-31
    java copyonwritearraylist 并发容器
  • 在java项目中实现工厂模式的方法
    在java项目中实现工厂模式的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java 工厂模式的实例详解工厂方法中的“工厂”和我们平常理解的一样:用于生产产品。而客户是要和...
    99+
    2023-05-31
    java 工厂模式 ava
  • Git在项目中的协作模式是什么
    今天小编给大家分享一下Git在项目中的协作模式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、分布式工作流程与传统的...
    99+
    2023-06-30
  • Java的组合模式怎么实现
    本篇内容介绍了“Java的组合模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、什么是组合模式Compose objects i...
    99+
    2023-07-05
  • 事件委托模式怎么在java项目中实现
    这篇文章将为大家详细讲解有关事件委托模式怎么在java项目中实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java实现事件委托模式的实例详解举例说明:一个班级,有两类学生,A类:不学习,...
    99+
    2023-05-31
    java 事件委托模式 ava
  • 怎么在Java项目中实现一个策略模式
    怎么在Java项目中实现一个策略模式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。策略模式指:策略模式指将程序中可变部分抽象分离成一系列的算法,并将每一个算法封装起来,而且...
    99+
    2023-05-31
    java ava 策略模式
  • 怎么在java项目中实现一个单例模式
    这篇文章将为大家详细讲解有关怎么在java项目中实现一个单例模式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java设计模式之单例模式定义:如果一个类始终只能创建一个实例,那么这个类被称为...
    99+
    2023-05-31
    java 单例模式 ava
  • 在Java项目中实现装饰者模式的方法
    在Java项目中实现装饰者模式的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。装饰模式在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对...
    99+
    2023-05-31
    java 装饰者模式 ava
  • 责任链模式如何在Java项目中实现
    这期内容当中小编将会给大家带来有关责任链模式如何在Java项目中实现,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。责任链模式责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的...
    99+
    2023-05-31
    java 责任链模式 ava
  • 迭代器模式如何在java项目中实现
    迭代器模式如何在java项目中实现 ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java 迭代器模式实例详解首先,为什么使用迭代器模式,目的就是通过一个通用的迭代方法,隐...
    99+
    2023-05-31
    java 迭代器模式 ava
  • 解释器模式如何在Java项目中实现
    解释器模式如何在Java项目中实现?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子...
    99+
    2023-05-31
    java ava 解释器模式
  • 怎么在Java项目中实现一个观察者模式
    怎么在Java项目中实现一个观察者模式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。观察者模式:对象间的一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象(被观察)。...
    99+
    2023-05-31
    java 观察 观察者模式
  • Java项目中反射机制的原理是什么
    今天就跟大家聊聊有关Java项目中反射机制的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java 反射机制实例详解一、JAVA是动态语言吗?一般而言,说到动态言,都是指在...
    99+
    2023-05-31
    java 反射机制 ava
  • Handler在Android项目中的运行原理是什么
    这期内容当中小编将会给大家带来有关Handler在Android项目中的运行原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Handler先通过一个例子看一下 Handler 的用法。public...
    99+
    2023-05-31
    android handler roi
  • 如何在Java项目中实现一个命令模式
    如何在Java项目中实现一个命令模式?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排...
    99+
    2023-05-31
    java ava 命令模式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作