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

做网站汉中武汉百度推广seo

做网站汉中,武汉百度推广seo,我想在泉州做网站,做网站推销产品效果怎么样写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 组合模式(Composit…

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。

组合模式(Composite)

是一种行为型模式。

目录

一、概述

1.1、主要的角色有三种:

1.2、直观的理解组合模式:

1.3、技术角度,描述对象之间关系的UML图:

二、举例

2.1、分析如下:

2.2、对象之间的关系用UML图表示如下:

2.3、Java实现代码如下:


一、概述

1、将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性;
2、基本对象可以被组合成更复杂的组合对象,而这个组合对象又可以被组合,这样不断地递归下去,客户代码中,任何用到基本对象的地方都可以使用组合对象了。

1.1、主要的角色有三种:

  1. 组合(或组件)的抽象类或接口
  2. 分支类
  3. 叶子类

1.2、直观的理解组合模式:

其实可以把组合模式当做建立一个树形结构,然后可以对这个树的所有节点进行统一操作,同样这个树还可以根据需要添加删除其它节点或树,从而组成更大的树或更小的树。

1.3、技术角度,描述对象之间关系的UML图:

二、举例

简单举例,如下图所示,我们要实现这个结构,并且打印每个节点的名字。

2.1、分析如下:

1、分析上述问题:

  • 本例比较简单,可以直接看到上述有7个对象,且是一个树形结构(实践中可能需要我们花一点功夫去判断这些对象是否可以应用这种结构)
  • 要打印每一个节点的名字,也就是我们需要对它们进行重复打印的操作
  • 这时可以考虑使用组合模式,将他们看成一个整体,对这个整体进行统一打印的操作

2、针对角色和方法设计上:

组合(或组件)的抽象类或接口

  • 创建一个抽象节点

分支类

  • 本例有三个分支,名字需要分别设置

叶子类

  • 本例有四个叶子,名字需要分别设置

自定义方法:

  • 输出本节点名字

2.2、对象之间的关系用UML图表示如下:

2.3、Java实现代码如下:

组合(组件)的抽象类:

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

分支类:

public class Composite extends Component {List<Component> list = new LinkedList<>();public Composite(String name) {super(name);}@Overridepublic void add(Component component) {list.add(component);}@Overridepublic void remove(Component component) {list.remove(component);}@Overridepublic void display(int depth) {for (int i = 0; i < depth; i++) { //每个分支节点自己要干的事情,根据实际需要编写System.out.print("-");}System.out.println(this.name);for (Component component : list) { //遍历此分支节点的子节点,必须要有component.display(depth + 2);}//...}
}

叶子类:

public class Leaf extends Component {public Leaf(String name) {super(name);}@Overridepublic void add(Component component) {System.out.println("叶子节点没有添加子节点功能!");//...}@Overridepublic void remove(Component component) {System.out.println("叶子节点没有删除子节点功能!");//...}@Overridepublic void display(int depth) {for (int i = 0; i < depth; i++) { //每个叶子节点自己要干的事情,根据实际需要编写System.out.print("-");}System.out.println(this.name);//...}
}

 主程序(发起请求的类):

public class Main {public static void main(String[] args) {Composite root = new Composite("root");//创建根节点Leaf leafroot = new Leaf("leafroot");//创建叶子节点Composite compositeA = new Composite("compositeA");//创建分支节点root.add(leafroot);root.add(compositeA);Leaf leafA = new Leaf("leafA");//创建叶子节点Composite compositeAA = new Composite("compositeAA");//创建分支节点compositeA.add(leafA);compositeA.add(compositeAA);Leaf leafAAA = new Leaf("leafAAA");//创建叶子节点Leaf leafAAB = new Leaf("leafAAB");//创建叶子节点compositeAA.add(leafAAA);compositeAA.add(leafAAB);root.display(1);}
}

这里就不再举例了,可以把上面的Java例子复制到你本地,运行main函数试一下加深理解。这些代码都是我自己学习的时候根据一些教材手敲的,不存在bug可以直接运行。

如果觉得本文还不错,就请点个赞吧!如果有建议,也请评论指教和讨论!

http://www.mnyf.cn/news/34792.html

相关文章:

  • 网站中的宣传册翻页动画怎么做竞价系统
  • 企业网站提交seo查询优化
  • 网站上facebook怎么做链接如何进行网站推广
  • 优化型网站是什么意思卡点视频免费制作软件
  • 北京网站制作方案公司百度云手机登录入口
  • 网站可以做章子吗百度seo点击工具
  • 品牌网站设计方案深圳百度seo怎么做
  • 扬州 网站 建设做网站哪个平台好
  • 计算机网站开发项目宝鸡seo外包公司
  • wordpress主题模板中国seo公司排名教程
  • 做网站公司郑州郑州的网站建设公司排名秦皇岛seo招聘
  • 网站制作建设建议兴田德润广告推广平台网站有哪些
  • 网站开发 占位符seo快速优化方法
  • 做网站优化找谁百度seo找哪里
  • 网站制作 毕业设计电工培训技术学校
  • 淘客cms网站建设教程拼多多关键词优化是怎么弄的
  • 方维网站建设seo专业课程
  • 西藏自治区交通厅公路基本建设工程质量监督站网站西安seo按天收费
  • 宁夏水利厅建设处网站网络推广方法怎么做
  • wordpress多条件过滤天津百度推广排名优化
  • 做花藤字网站网站seo推广多少钱
  • 东莞专业做淘宝网站建设网站推广的方式有哪些
  • 获取网站域名中国北京出啥大事了
  • 做啥网站能挣钱安卓优化大师官网下载
  • 加强官方网站建设搜索引擎google
  • 东莞寮步最新通知疫情防控排名优化方案
  • 网络平台制作公司网站建设方案优化
  • 门户网站快速制作营销推广案例
  • 邮箱域名可以做网站吗西安霸屏推广
  • 购买域名后 可以做网站么影响关键词优化的因素