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

饰品设计网站推荐深圳品牌男装有哪些

饰品设计网站推荐,深圳品牌男装有哪些,做视频网站的方法,桂林楼盘网文章目录 组合模式介绍实现javarsut 组合模式 组合模式#xff08;Composite Pattern#xff09;#xff0c;又叫部分整体模式#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象#xff0c;用来表示部分以及整体层次。这种类型的设计… 文章目录 组合模式介绍实现javarsut 组合模式 组合模式Composite Pattern又叫部分整体模式是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象用来表示部分以及整体层次。这种类型的设计模式属于结构型模式它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 介绍 意图将对象组合成树形结构以表示部分-整体的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 主要解决它在我们树型结构的问题中模糊了简单元素和复杂元素的概念客户程序可以像处理简单元素一样来处理复杂元素从而使得客户程序与复杂元素的内部结构解耦。 何时使用、 1、您想表示对象的部分-整体层次结构树形结构。 2、您希望用户忽略组合对象与单个对象的不同用户将统一地使用组合结构中的所有对象。 如何解决树枝和叶子实现统一接口树枝内部组合该接口。 应用实例 算术表达式包括操作数、操作符和另一个操作数其中另一个操作数也可以是操作数、操作符和另一个操作数。 优点 1、高层模块调用简单。 2、节点自由增加。 缺点在使用组合模式时其叶子和树枝的声明都是实现类而不是接口违反了依赖倒置原则。 使用场景部分、整体场景如树形菜单文件、文件夹的管理。 实现 我们有一个类 Employee该类被当作组合模型类。CompositePatternDemo 类使用 Employee 类来添加部门层次结构并打印所有员工,这样我们就可以实现不同的的部门进行自由组合实现不同部门之间的即插即用。 组合模式的 UML 图 java 步骤 1 创建 Employee 类该类带有 Employee 对象的列表。 Employee.java import java.util.ArrayList; import java.util.List;public class Employee {private String name;private String dept;private int salary;private ListEmployee subordinates;//构造函数public Employee(String name,String dept, int sal) {this.name name;this.dept dept;this.salary sal;subordinates new ArrayListEmployee();}public void add(Employee e) {subordinates.add(e);}public void remove(Employee e) {subordinates.remove(e);}public ListEmployee getSubordinates(){return subordinates;}public String toString(){return (Employee :[ Name : name , dept : dept , salary : salary ]);} }步骤 2 使用 Employee 类来创建和打印员工的层次结构。 CompositePatternDemo.java public class CompositePatternDemo {public static void main(String[] args) {Employee CEO new Employee(John,CEO, 30000);Employee headSales new Employee(Robert,Head Sales, 20000);Employee headMarketing new Employee(Michel,Head Marketing, 20000);Employee clerk1 new Employee(Laura,Marketing, 10000);Employee clerk2 new Employee(Bob,Marketing, 10000);Employee salesExecutive1 new Employee(Richard,Sales, 10000);Employee salesExecutive2 new Employee(Rob,Sales, 10000);CEO.add(headSales);CEO.add(headMarketing);headSales.add(salesExecutive1);headSales.add(salesExecutive2);headMarketing.add(clerk1);headMarketing.add(clerk2);//打印该组织的所有员工System.out.println(CEO); for (Employee headEmployee : CEO.getSubordinates()) {System.out.println(headEmployee);for (Employee employee : headEmployee.getSubordinates()) {System.out.println(employee);}} } }步骤 3 执行程序输出结果为 Employee :[ Name : John, dept : CEO, salary :30000 ] Employee :[ Name : Robert, dept : Head Sales, salary :20000 ] Employee :[ Name : Richard, dept : Sales, salary :10000 ] Employee :[ Name : Rob, dept : Sales, salary :10000 ] Employee :[ Name : Michel, dept : Head Marketing, salary :20000 ] Employee :[ Name : Laura, dept : Marketing, salary :10000 ] Employee :[ Name : Bob, dept : Marketing, salary :10000 ]rsut 在rust中由于所有权机制组合模式中如果不使用引用的方法在组合顺序上便有所限制只能从低级的开始组合否则进行组合时便会出现所有权报错问题由于本人代码水平有限没能实现用引用实现的组合模式只能用转移所有权的方法实现。 use std::fmt;// 定义雇员 struct Employee{name:String,dept:String,sal:i32,subordinates:VecEmployee } // 自定义格式化 impl fmt::Display for Employee {fn fmt(self, f: mut fmt::Formatter) - std::fmt::Result {write!(f,Employee : Name{}, dept : {} ,salary : {}, self.name,self.dept,self.sal)} } impl Employee {fn add(mut self,e:Employee) {self.subordinates.push(e);}fn remove(mut self,e:Employee) {self.subordinates.retain(|x| {if x.name!e.name||x.depte.dept||x.sale.sal{return true;}return false;});}fn get_subordinates(self) {self.subordinates.as_ptr();}fn new(name:String,dept:String, sal:i32)-Employee{Employee { name, dept,sal,subordinates:Vec::new() }}} fn pe(e:Employee) {println!({},e);if !e.subordinates.is_empty(){e.subordinates.iter().for_each(|x| pe(x));}} fn main(){let mut ceoEmployee::new(String::from(John), String::from(CEO),30000);let mut head_salesEmployee::new(String::from(Robert), String::from(Head Sales),20000);let mut head_marketEmployee::new(String::from(Michel), String::from(Head Marketing),10000);let mut clerk1Employee::new(String::from(Laura), String::from(Marketing),10000);head_sales.add(head_market);head_sales.add(clerk1);ceo.add(head_sales);pe(ceo)}
http://www.w-s-a.com/news/58518/

相关文章:

  • 怎样联系自己建设网站企业怎样做好网站建设
  • 网站制作需求分析电商网站建设浩森宇特
  • 淄博网站建设招聘摄影网站建设的论文
  • 怎么把凡科网里做的网站保存成文件网站建设研究的意义
  • 服务器2003怎么做网站网站建设服务器的配置
  • 高校网站建设方案网站推广软件下载安装免费
  • 重庆没建网站的企业网站开发软件 连接SQL数据库
  • 百度申诉网站沉默是金
  • 如何自己建网站wordpress图片延时加载
  • 甘肃省住房和城乡建设厅注册中心网站千博企业网站管理系统2013
  • 西餐厅网站模板seo搜索引擎优化ppt
  • 什么做的网站吗wordpress注册可见插件
  • 献县做网站价格可以提升自己的网站
  • 如何修改网站title建设网站只能是公司
  • 网站推广效果怎么样建设工程公司组织架构图
  • 成都制作网站价格表网站安全证书过期怎么办
  • 高校图书馆网站的建设方案湖南常德市
  • 房地产怎么做网站推广wordpress插件汉化下载
  • 一般pr做视频过程那个网站有无锡网络公司平台
  • 安徽网站推广系统网站根目录权限设置
  • 班级网站建设需求智慧校园登录入口
  • asp.net网站发布到虚拟主机电商设计网站哪个好
  • 做的网站怎么转成网址链接企业为什么要找会计
  • 关于建设网站的情况说明书文化建设方面的建议
  • 订票网站开发公司大通证券手机版下载官方网站下载
  • 网店美工的意义与发展佛山推广seo排名
  • 网站在建设中模板自助云商城
  • 珠海网站设计建建建设网站公司网站
  • 广州高端网站制作公司哪家好网页制作公司 软件
  • 最快做网站的语言百度站长反馈