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

专门做库存的网站企业网站建设应注意哪些问题

专门做库存的网站,企业网站建设应注意哪些问题,物联网平台的作用,东莞市疾控中心地址组合模式 什么是组合模式 组合模式(Composite Pattern)允许你将对象组合成树形结构以表示“部分-整体”的层次结构,使得客户端以统一的方式处理单个对象和对象的组合。组合模式让你可以将对象组合成树形结构,并且能像单独对象一…

组合模式

什么是组合模式

组合模式(Composite Pattern)允许你将对象组合成树形结构以表示“部分-整体”的层次结构,使得客户端以统一的方式处理单个对象和对象的组合。组合模式让你可以将对象组合成树形结构,并且能像单独对象一样使用它们。

组合模式使用场景

把部分和整体的关系用树形结构来表示,从而是客户端可以使用统一的方式处理部分对象和整体对象。

组合模式核心

抽象构件(Component)角色:定义了叶子和容器构件的共同特点
叶子(Leaf)构件角色:无子节点
容器(Composite)构件角色:有容器特征,可以包含子节点

在这里插入图片描述

组合模式工作流程分析

  • 组合模式为处理树形结构提供了完美的解决方案,描述了如何将容器和叶子进行递归组合,是的用户在使用是可以一致性的对待容器和叶子
  • 当容器对象的指定方法被调用时,将遍历整个树形结构,寻找也抱恨这个方法的成员,并调用执行,其中使用了递归调用的机制对整个结构进行处理。

代码实现结构

Component.java

// 抽象构件
public interface Component {// 相同行为操作void operation();
}

Leaf.java

// 叶子
public class Leaf implements Component {@Overridepublic void operation() {System.out.println("叶子单独操作");}
}

Composite.java

import java.util.ArrayList;
import java.util.List;// 容器节点
public class Composite implements Component{// 作为容器存储子节点信息private List<Component> components = new ArrayList<>();public Composite(List<Component> components) {this.components = components;}public List<Component> getComponents() {return components;}public void setComponents(List<Component> components) {this.components = components;}@Overridepublic void operation() {System.out.println("容器构件操作");for (Component component : components) {// 递归执行叶子节点操作component.operation();}}
}

案例

模拟杀毒软件的架构设计

UML

在这里插入图片描述

实现代码

AbstractFile.java

// 抽象组件
public interface AbstractFile {// 杀毒功能void killVirus();
}

ImagesFile.java

// 图片类型文件
public class ImagesFile implements AbstractFile{private String name;public ImagesFile(String name) {this.name = name;}@Overridepublic void killVirus() {System.out.printf("图片类型文件-%s-进行扫毒%n",this.name);}
}

TxtFile.java

// 文本类型文件
public class TxtFile implements AbstractFile{private String name;public TxtFile(String name) {this.name = name;}@Overridepublic void killVirus() {System.out.printf("文本类型文件-%s-进行扫毒%n",this.name);}
}

VideoFile.java

// 视频类型文件
public class VideoFile implements AbstractFile{private String name;public VideoFile(String name) {this.name = name;}@Overridepublic void killVirus() {System.out.printf("视频类型文件-%s-进行扫毒%n",this.name);}
}

Floder.java

import java.util.ArrayList;
import java.util.List;// 容器构件:目录
public class Floder implements AbstractFile{private String name;// 子节点private List<AbstractFile> lists = new ArrayList<AbstractFile>();public Floder(String name, List<AbstractFile> lists) {this.name = name;this.lists = lists;}@Overridepublic void killVirus() {System.out.printf("扫描当前目录-%s%n",this.name);for(AbstractFile abstractFile : lists){abstractFile.killVirus();}}
}

TestClient.java

import java.util.ArrayList;
import java.util.List;public class TestClient {public static void main(String[] args) {AbstractFile file1 = new TxtFile("花无缺.TXT");AbstractFile file2 = new ImagesFile("花无缺.png");AbstractFile file3 = new ImagesFile("花无缺.avi");List<AbstractFile> list = new ArrayList<AbstractFile>();list.add(file1);list.add(file2);list.add(file3);Floder floder = new Floder("huawuque",list);AbstractFile file4 = new TxtFile("小鱼儿.TXT");AbstractFile file5 = new ImagesFile("小鱼儿.png");AbstractFile file6 = new ImagesFile("小鱼儿.avi");List<AbstractFile> list1 = new ArrayList<AbstractFile>();list1.add(file4);list1.add(file5);list1.add(file6);Floder floder2 = new Floder("xuaiyuer",list1);List<AbstractFile> list3 = new ArrayList<AbstractFile>();list3.add(floder);list3.add(floder2);Floder floder3 = new Floder("绝代双骄",list3);floder3.killVirus();}
}

执行结果

在这里插入图片描述

gitee源码

git clone https://gitee.com/dchh/JavaStudyWorkSpaces.git

http://www.yayakq.cn/news/830386/

相关文章:

  • 做网站设计怎么进企业2024免费网站推广
  • 宿迁哪家做网站推广高端移动网站开发
  • 临武县网站建设专业免费在线观看高清影片
  • 网站运营推广难做吗推广竞价托管费用
  • 公司网站怎么申请一个ip两个网站怎么做
  • 网站开发周期表江西 网站 建设 开发
  • 单页网站怎么做外链网站推广的重要性
  • 网站制作厂家有哪些苏州工业园区网站
  • 帝国cms模板网为什么打开网址都是seo综合查询
  • 网站域名价格广告设计与制作合同范本
  • 网上最好购物网站像wordpress一样的网站吗
  • dede免费网站模板discuz 轉wordpress
  • 手机端网站建站用单位的服务器做网站
  • 做网站外包好吗宁波专业网站推广平台咨询
  • 做响应式网站最大宽度wordpress 消息机制
  • 郑州贸网站建设公司wordpress快捷登录
  • 邢台网站建设设计制作开发网站和application
  • 济南网站建设工作做浏览单的网站有哪些
  • 软件科技公司网站模板电子商务网站建设模板代码
  • 做淘客的网站都有哪几个wordpress数据表大学
  • 百度上推广一个网站该怎么做天津网站建设排名
  • 网站域名注册网站网址大全2345下载
  • 网站文件目录曹鹏wordpress教程 下载
  • 自适应企业网站用什么框架做wordpress订阅地址
  • 网站外链建设的15个小技巧北京网站建设好
  • 合肥网站开发建设网站建设与代运营介绍
  • 道外网站建设家装设计学习
  • 美食网站怎样做锅包肉毕业设计做网站答辩
  • 网站备案名称必须是公司名网站密码是什么情况
  • 高淳建设局网站西安建设工程信息网官网xiancin