当前位置: 首页 > 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.yutouwan.com/news/402247/

相关文章:

  • 建设网站哪家好郑州企业建站网站
  • 做二维码签到的网站网站模板一样侵权吗
  • 淘宝网发布网站建设西安有几家做网站
  • 河南建设工程质量监督局网站自己创建一个网站
  • 百度推广就是做网站吧深圳做响应式网站制作
  • 北京建站软件怎样才能在百度上搜到自己的网站
  • 深圳做棋牌网站建设找哪家公司好淮北专业网站建设
  • 英文网站建设合同网站开发需要什么专业
  • 中象做网站怎么样做微商网站需要哪些
  • 网站开发有哪些工作岗位怎么做类似美团的网站吗
  • 最好的网站建设哪家好邯郸做外卖网站的公司
  • 经典网站欣赏、wordpress前台加载谷歌字体
  • 网页设计自学视频网站哈尔滨住建局网站首页
  • 淳安县住房和城乡建设局网站首页网站设计的设计方案
  • 个人备案可以做哪些网站海南省住房和城乡建设厅网站网上版
  • 公司网站建设宣传报道稿件网站中的滑动栏怎么做的
  • 建设一个网站要多少费用吗网页的版面设计是指
  • 如何做网站关键词词霸深圳做网站 汉狮网络
  • 网站设计精美案例怎么制作网站软件
  • 手机 登录asp网站重庆响应式网页建设报价
  • 潍坊知名网站建设公司网站如何做担保交易
  • 创同盟做网站Wordpress用七牛云存储
  • 网站开发禁止下载功能如何判断网站数据库类型
  • 网站后台树形菜单样式网站设计制作程序
  • 网站建设 职责手机数据线东莞网站建设
  • 推广网站怎么建关键词首页优化
  • 深圳专业网站建设技术为什么很少用python做网站
  • 企业网站的主要栏目网站建设售前怎么做好
  • 怎么做网站教程++用的工具odoo与wordpress
  • 电子商务网站是什么广东佛山网络有限公司