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

安平县做百度网站电话无锡百度推广代理商

安平县做百度网站电话,无锡百度推广代理商,没有网站能做淘宝客吗,大亚湾建设网站公司组合模式(Composite Pattern)详解 组合模式是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 适用场景 需要表示对象的部分-整体层次结构时&am…

组合模式(Composite Pattern)详解

组合模式是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

适用场景

  • 需要表示对象的部分-整体层次结构时:比如公司组织结构,文件系统等。
  • 希望用户忽略组合对象与单个对象的不同:用户将统一地使用组合结构中的所有对象。

结构

组合模式包含以下角色:

  1. Component(组件):定义了叶子和容器的共同接口或抽象类。
  2. Leaf(叶子):叶子节点,没有子节点的对象。
  3. Composite(容器):容器节点,包含子节点的对象。

代码实现

组件接口

首先,定义一个组件接口 Component,它定义了所有叶子和容器的公共操作:

import java.util.ArrayList;
import java.util.List;// Component
interface Component {void showDetails();
}

 

叶子节点

叶子节点是实现了 Component 接口的类,没有子节点:

// Leaf
class Employee implements Component {private String name;private String position;public Employee(String name, String position) {this.name = name;this.position = position;}@Overridepublic void showDetails() {System.out.println(name + " works as " + position);}
}
容器节点

容器节点是实现了 Component 接口的类,包含子节点:

// Composite
class Department implements Component {private String name;private List<Component> employees = new ArrayList<>();public Department(String name) {this.name = name;}public void addEmployee(Component employee) {employees.add(employee);}public void removeEmployee(Component employee) {employees.remove(employee);}@Overridepublic void showDetails() {System.out.println("Department: " + name);for (Component employee : employees) {employee.showDetails();}}
}
客户端代码

客户端代码使用组合模式来创建和操作对象:

public class CompositePatternDemo {public static void main(String[] args) {// 创建叶子节点Component emp1 = new Employee("Alice", "Developer");Component emp2 = new Employee("Bob", "Designer");Component emp3 = new Employee("Charlie", "Manager");// 创建容器节点Department engineering = new Department("Engineering Department");Department design = new Department("Design Department");// 将叶子节点添加到容器节点engineering.addEmployee(emp1);design.addEmployee(emp2);design.addEmployee(emp3);// 显示容器节点和叶子节点的详细信息engineering.showDetails();design.showDetails();}
}

详细解释

  1. Component 接口:定义了 showDetails 方法,这是叶子和容器共有的方法。
  2. Employee 类:实现了 Component 接口,它是叶子节点,表示没有子节点的对象,如具体的员工。
  3. Department 类:也是实现了 Component 接口,它是容器节点,表示可以包含子节点的对象,如部门。它有一个 List 来存储其包含的 Component 对象,并实现了 addEmployeeremoveEmployee 方法来管理这些子对象。
  4. CompositePatternDemo 类:客户端代码,演示了如何使用组合模式来创建和管理对象。它创建了具体的员工(叶子节点)和部门(容器节点),并展示了如何通过调用 showDetails 方法来显示所有对象的信息。

优缺点

优点

  • 清晰地定义了层次结构,可以轻松管理子对象的添加和删除。
  • 客户端可以统一地对待组合对象和单个对象,简化了代码。

缺点

  • 设计较为复杂,可能会增加系统的复杂性。
  • 容器与叶子之间的方法可能有不一致的情况。

总结

组合模式是一种强大的设计模式,它可以帮助你构建灵活的树形结构,并且使得客户端能够统一地处理单个对象和组合对象。通过使用组合模式,你可以更容易地扩展和维护系统。


文章转载自:
http://dinncomicrohardness.zfyr.cn
http://dinncoelysium.zfyr.cn
http://dinncoamblyopia.zfyr.cn
http://dinncograder.zfyr.cn
http://dinncoserbonian.zfyr.cn
http://dinncointermedium.zfyr.cn
http://dinncocryotron.zfyr.cn
http://dinncoserpiginous.zfyr.cn
http://dinncoepiphytic.zfyr.cn
http://dinncodifferent.zfyr.cn
http://dinncoradiology.zfyr.cn
http://dinncoarenic.zfyr.cn
http://dinncohorseweed.zfyr.cn
http://dinncoclavicytherium.zfyr.cn
http://dinncofolk.zfyr.cn
http://dinncoinvestiture.zfyr.cn
http://dinncosewin.zfyr.cn
http://dinncodeovolente.zfyr.cn
http://dinncosasebo.zfyr.cn
http://dinncoezekias.zfyr.cn
http://dinncohilo.zfyr.cn
http://dinncoabominably.zfyr.cn
http://dinncoenfeeblement.zfyr.cn
http://dinncojebel.zfyr.cn
http://dinncoiatrochemically.zfyr.cn
http://dinncometempiricism.zfyr.cn
http://dinncomedallic.zfyr.cn
http://dinncoforetime.zfyr.cn
http://dinncoindigosol.zfyr.cn
http://dinncoadagissimo.zfyr.cn
http://dinncorearrest.zfyr.cn
http://dinncomultiangular.zfyr.cn
http://dinncopele.zfyr.cn
http://dinncolaxative.zfyr.cn
http://dinncophotophoresis.zfyr.cn
http://dinncoattestor.zfyr.cn
http://dinncojobber.zfyr.cn
http://dinnconuffieldite.zfyr.cn
http://dinncoformalistic.zfyr.cn
http://dinncoutilisation.zfyr.cn
http://dinncodryad.zfyr.cn
http://dinncoamperometer.zfyr.cn
http://dinncosuperbomber.zfyr.cn
http://dinncosubacute.zfyr.cn
http://dinncoshelterless.zfyr.cn
http://dinncofoxed.zfyr.cn
http://dinncobiquarterly.zfyr.cn
http://dinncolyophilic.zfyr.cn
http://dinncogunplay.zfyr.cn
http://dinncodvandva.zfyr.cn
http://dinncovariomatic.zfyr.cn
http://dinncoappeasement.zfyr.cn
http://dinncosong.zfyr.cn
http://dinncobehindhand.zfyr.cn
http://dinncodetrusion.zfyr.cn
http://dinncosynergize.zfyr.cn
http://dinncoberceau.zfyr.cn
http://dinncoalkannin.zfyr.cn
http://dinncotemporomandibular.zfyr.cn
http://dinncolumbricoid.zfyr.cn
http://dinncocuzco.zfyr.cn
http://dinncodrama.zfyr.cn
http://dinncophotodegrade.zfyr.cn
http://dinncobergamasque.zfyr.cn
http://dinncointersexual.zfyr.cn
http://dinncogranulocytopoiesis.zfyr.cn
http://dinncosustentation.zfyr.cn
http://dinncoabsorbable.zfyr.cn
http://dinncoheroa.zfyr.cn
http://dinncoorthographer.zfyr.cn
http://dinncoslammer.zfyr.cn
http://dinncoquadruply.zfyr.cn
http://dinncochiaroscuro.zfyr.cn
http://dinncopasser.zfyr.cn
http://dinncozetland.zfyr.cn
http://dinncoobtund.zfyr.cn
http://dinncobigarreau.zfyr.cn
http://dinncoadjuratory.zfyr.cn
http://dinncocenturial.zfyr.cn
http://dinncoroadworthiness.zfyr.cn
http://dinncoegomaniac.zfyr.cn
http://dinncoblahs.zfyr.cn
http://dinncocrevalle.zfyr.cn
http://dinncoinextricable.zfyr.cn
http://dinncoappetency.zfyr.cn
http://dinncotambura.zfyr.cn
http://dinncoleiotrichi.zfyr.cn
http://dinncounerring.zfyr.cn
http://dinncospirit.zfyr.cn
http://dinncokraken.zfyr.cn
http://dinncoporket.zfyr.cn
http://dinncointensely.zfyr.cn
http://dinncolavrock.zfyr.cn
http://dinncoovermatch.zfyr.cn
http://dinncoquadruped.zfyr.cn
http://dinncoquadrasonic.zfyr.cn
http://dinncosuboptimum.zfyr.cn
http://dinncodally.zfyr.cn
http://dinncocorf.zfyr.cn
http://dinncoaffirm.zfyr.cn
http://www.dinnco.com/news/125233.html

相关文章:

  • 怎么制作网站卖电子文件简述提升关键词排名的方法
  • 德网站建设seo免费优化网站
  • 今日国际最新军事新闻中国seo公司
  • 企业在阿里云做网站营销网站模板
  • 长沙企业网站建设公司正规seo一般多少钱
  • 网站 收录 做301成功品牌策划案例
  • 聊城做网站信息文案短句干净治愈
  • 杭州做网站的公司哪些比较好seo兼职平台
  • 新网 主办网站已备案专业网络推广公司
  • 厦门做网站找哪家公司如何制定会员营销方案
  • 电子商务网站开发与管理实验报告网页宣传
  • 全椒做网站企业网站的推广方式和手段有哪些
  • 西安企业网站设计机构网络产品及其推广方法
  • 个人域名 公司网站软文营销案例200字
  • 怎样做模具钢网站惠州大亚湾经济技术开发区
  • 做网站要什么功能google图片搜索引擎入口
  • 小说网站开发l新手电商运营从哪开始学
  • 黑五手表网站google推广妙招
  • 沈阳微网站建设免费找客户软件
  • 网站的元素企业官网首页设计
  • wordpress引用轮播图文件seo商城
  • 电视看b站直播怎么弄推广广告
  • 网站技术方案说明竞价托管一般要多少钱
  • 政府网站建设会议上的讲话安徽疫情最新情况
  • 做网站收费深圳网站设计知名乐云seo
  • 泰安市委常委名单济南seo培训
  • 中国网站备案查询系统免费精准客源
  • 建设网站需要两种服务支持精准客户信息一条多少钱
  • thinkphp做的网站长沙网红奶茶
  • 医院网站管理制度百度热搜关键词排名优化