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

鸿鹄网站建设wordpress自定义页面引用

鸿鹄网站建设,wordpress自定义页面引用,辽阳企业网站建设,做网站推广合同在现实生活中#xff0c;常常会遇到用树形结构组织的一些场景#xff0c;比如国家省市#xff0c;学校班级#xff0c;文件目录#xff0c;分级导航菜单#xff0c;以及典型的公司组织架构#xff0c;整个层次结构自顶向下呈现一颗倒置的树。这种树形结构在面向对象的世…在现实生活中常常会遇到用树形结构组织的一些场景比如国家省市学校班级文件目录分级导航菜单以及典型的公司组织架构整个层次结构自顶向下呈现一颗倒置的树。这种树形结构在面向对象的世界中非常适合用组合模式来处理。 一概述 组合模式Composite Pattern又叫做“部分-整体”模式是一种结构型设计模式它允许将对象组织成树状结构以表示“部分-整体”的层次结构。在这种结构中可以将相同操作应用于部分和整体从而实现对单个对象和组合对象的一致性处理。怎么理解单个对象和组合对象比如一颗倒置的节点树其中的叶子节点就是单个对象每个分支节点和其下的所有子节点共同构成组合对象。 组合模式一般包含以下角色 抽象构件Component为单个对象和组合对象声明公共接口定义共有的行为或属性如添加、删除、获取子节点等方法。叶子构件Leaf即单个的对象表示树形结构中没有子节点的对象实现了抽象构件中的方法。组合构件Composite即组合对象包含一组子对象同时实现了抽象构件中添加、删除、获取子节点等方法。 优点 提供统一的操作接口简化客户端代码客户端代码可以一致地处理单个对象和组合对象无需区分它们的类型使客户端代码更加简洁和统一。提升系统灵活性和可扩展性可以很方便地通过添加新的组合对象或叶子对象来扩展树形结构并且可以动态地添加、删除和修改对象。 缺点 限制了组合对象的类型组合模式中的组合对象必须实现相同的接口或继承相同的父类。这可能会限制组合对象的类型使其无法满足特定的需求。可能导致系统过于一般化组合模式的使用可能导致系统过于一般化将特定的操作和行为放在组合模式中可能不太合适。增加了系统的复杂性引入组合模式会增加系统的复杂性需要更多的类和接口来表示组合结构增加了代码的数量和理解难度。 适用场景 需要表示“部分-整体”层次结构的情况如树状结构、目录结构等。希望能够以统一的方式处理单个对象和组合对象时。需要动态地添加、删除和修改对象希望系统具有良好的扩展性时。 二模拟公司组织架构 案例分析 接下来我们用组合模式来模拟实现下公司组织架构使得我们可以动态管理公司人员。如上图所示所有的叶子节点表示普通员工是单个的对象。所有的分支节点包括根节点表示领导每个领导都含有下属员工总裁的下属就是主管每个领导及其直接下属就构成组合对象。不管是总裁、主管还是普通员工他们都是公司的雇员这就是员工和领导的共性。 代码实现 步骤1创建抽象构件—Employee接口表示雇员。 public interface Employee {//添加下属员工void add(Employee e);//移除下属员工void remove(Employee e);//获取所有下属员工ListEmployee getSubordinates();//打印员工信息void info(); }步骤2创建叶子构件—Worker类实现Employee接口表示最底层的员工。对于的员工的管理操作提供空实现即可。 public class Worker implements Employee{//员工姓名private String name;public Worker(String name) {this.name name;}Overridepublic void add(Employee e) {}Overridepublic void remove(Employee e) {}Overridepublic ListEmployee getSubordinates() {return null;}Overridepublic void info() {System.out.println(员工-name);} }步骤3创建组合构件—Leader类实现Employee接口表示含有下属的领导。代码中用一个集合表示该领导的下属。 public class Leader implements Employee{//领导姓名private String name;//下属集合private ListEmployee subordinates;public Leader(String name) {this.name name;this.subordinates new ArrayList();}Overridepublic void add(Employee e) {subordinates.add(e);}Overridepublic void remove(Employee e) {subordinates.remove(e);}Overridepublic ListEmployee getSubordinates() {return subordinates;}Overridepublic void info() {System.out.println(领导-name);for(Employee e:subordinates){e.info();}} }步骤4客户端测试。 public class Client {public static void main(String[] args) {Employee ceonew Leader(ceo);Employee devLeadernew Leader(devLeader);Employee fatLeadernew Leader(fatLeader);ceo.add(devLeader);ceo.add(fatLeader);Employee devWorker01new Worker(devWorker01);Employee devWorker02new Worker(devWorder02);devLeader.add(devWorker01);devLeader.add(devWorker02);Employee fatWorker01new Worker(fatWorker01);Employee fatWorker02new Worker(fatWorder02);fatLeader.add(fatWorker01);fatLeader.add(fatWorker02);//打印整个公司架构ceo.info();System.out.println();//打印开发部门架构devLeader.info();System.out.println();//测试部门开除员工fatWorker01后的人员结构fatLeader.remove(fatWorker01);fatLeader.info();} }测试结果 三总结 通过本篇文章的案例学习可以看出组合模式在处理树状结构场景时非常有用。在实际项目中如果遇到需要表示对象的“部分-整体”关系并希望用户能够忽略组合对象和单个对象之间的差异可以考虑使用组合模式。它可以简化客户端操作并提升系统灵活性和扩展性。不过它也可能增加系统的复杂度和理解难度我们应该根据实际需求进行权衡。 好了希望这篇文章对你的学习有所帮助在此感谢你的阅读我们下次再见
http://www.hkea.cn/news/14462654/

相关文章:

  • 网站大图轮播android编程开发
  • 站内seo怎么做设计网站属于什么专业
  • 网站建设自己能做吗中华住房和城乡建设厅网站
  • 做网站很忙吗自己编辑网站怎么做的
  • 1717做网站seo怎么做
  • 网上那些彩票网站可以自己做吗网站的优化
  • 有哪些做海岛的网站长沙seo运营
  • 网站建设的客户菜鸟网站做图
  • 温州营销网站公司电话wordpress全局透明主题下载
  • 人防网站建设最好的做网站的公司
  • 怎么做网站和艺龙对接wordpress下拉插件
  • 上海做网站设计公司ppt 做的最好的网站
  • 营销型网站设计公司wordpress 框架选择
  • 做网站公司上班违法吗适合个人公众号的名字
  • 湛江自做网站哈尔滨建设规划局网站
  • 南昌企业做网站scratch网站开发
  • 网站你们都知道较好的网站设计师培训学校
  • 网站建设有趣小游戏可视化网页设计软件
  • 闽候县建设局网站南阳医疗网站建设公司
  • 做网站需要营业执照嘛阿里云备案网站建设方案书模板
  • 学会建设网站必要性搜索引擎推广是什么
  • 产品如何做网站推广西安app制作开发公司
  • 重庆营销型网站随做的好凡科网 免费网站
  • 佛山企业网站建设渠道学校宣传栏版面设计
  • 电子商务网站建设规划范文wordpress设置网站地图
  • 点击网站首页域名又添加一个php网站接入支付宝
  • 学校网站建设意义yahoo提交网站入口
  • 做网站前产品经理要了解什么网站开发和企业级开发有什么区别
  • 大学生怎么做网站支付模块大同网站设计
  • 免费的图库网站北京比较好的互联网公司