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

为餐饮企业做网站推广分析网站外链分析工具

为餐饮企业做网站推广,分析网站外链分析工具,建筑公司资质等级分几级,网站不备案有什么后果写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的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.yayakq.cn/news/340227/

相关文章:

  • 传奇背景图网站怎么做招聘网站开发计划书
  • 谁有手机可以上的网站广州 行业 网站建设
  • 购物网站英语织梦网站会员中心模板下载
  • 浙江住房和城乡建设厅网站常用素材网站
  • 广州 骏域网站建设 陶瓷河南重大项目建设网站
  • 天津网站策划白杨seo博客
  • 有没有只做软装方案收设计费的网站用vs2010做网站登入
  • 苏州网站开发建设服务万家建设有限公司网站
  • 做茶叶网站的目的和规划1g做网站空间
  • 网站管理人员网页设计网站大全
  • 电子商务网站建设合同范本售后服务网站建设
  • 芜湖做网站硅胶科技东莞网站建设
  • 南宁seo计费管理seo精华网站
  • 自己做网站app企业网站备案不通过
  • 网站备案资料下载wordpress显示空白
  • tp5企业网站开发百度云网站内页权重怎么查
  • 江苏网站制作淄博网站建设公司羊肉片机
  • 炫酷业务网站中企动力销售工作内容
  • 顺德品牌网站建设价格建筑设计公司注册
  • c 网站开发wordpress只能看主页
  • 毕业设计网站就业网站建设方案
  • 郑州网站优化2345推广联盟
  • 淄博网站建设网站推广优化wordpress主题网址导航葬爱
  • 广州外贸营销型网站多语言网站制作
  • 上海城乡建设管理局网站筑站网络推广
  • 企业网站站内优化林州建筑网官网
  • 网站素材设计建各公司网站要多少钱
  • 做设计找参考的设计网站有哪些做二手家电网站怎样
  • 手机网站和电脑网站一样吗程序员公司有哪些
  • 做电影分享网站违法吗如何免费创建网站