实验4适配器组合外观模式方案

上传人:206****923 文档编号:91095104 上传时间:2019-06-21 格式:DOC 页数:9 大小:114.50KB
返回 下载 相关 举报
实验4适配器组合外观模式方案_第1页
第1页 / 共9页
实验4适配器组合外观模式方案_第2页
第2页 / 共9页
实验4适配器组合外观模式方案_第3页
第3页 / 共9页
实验4适配器组合外观模式方案_第4页
第4页 / 共9页
实验4适配器组合外观模式方案_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《实验4适配器组合外观模式方案》由会员分享,可在线阅读,更多相关《实验4适配器组合外观模式方案(9页珍藏版)》请在金锄头文库上搜索。

1、实 验 报 告系 别班 级学 号姓 名时间地点20160418课程名称设计模式实验名称适配器、组合、外观实 验 过 程一实验目的与要求熟练使用适配器、组合、外观模式二实验设备微型计算机3 实验原理和实验内容1. 实验原理: 2. 实验内容:1) 某公司欲开发一款儿童玩具汽车,为了更好地吸引小朋友的注意力,该玩具汽车在移动过程中伴随着灯光闪烁和声音提示,在该公司以往的产品中已经实现了控制灯光闪烁和声音提示的程序,为了重用先前的代码并且使得汽车控制软件具有更好的灵活性和扩展性,使用适配器模式设计该系统,所得类图如下图所示。编程模式实现程序。2) 某公司的组织结构采用组合设计模式来设计,得到类图如下

2、。其中Company为抽象类,定义了在组织结构上添加(Add)和删除(Delete)部门的方法接口。类ConcreteCompany表示具体的公司,可以设置不同的部门。类HRDepartment和类FianceDepartment分别表示人力资源部和财务部。编程模拟实现。3) 某信息系统需要提供一个数据读取和报表显示模块,可以将来自不同类型文件中的数据转换成XML格式,并对数据进行统计和分析,然后以报表方式来显示数据。由于该过程需要涉及多个类,因此使用外观模式进行设计,编程模拟实现程序。FileOperation类用于读取文件,XMLDataConvertor类用于将不同格式文件转换为XML格

3、式,DataAnalysis用于对XML数据进行统计分析,ReportDisplay类用于显示报表。为了让系统具有更好的扩展性,在系统设计中引入了抽象外观类AbstractFacade,它拥有多个不同的子类,如XMLFacade,它用于与读取、分析和显示XML数据的类交互,ExtendedFacade类用于与读取、转换、分析和显示非XML数据的类交互。3. 实验结果1) 代码:package com.yue.www;abstract class Soundpublic abstract void phonate();class ConcreteSound extends SoundOverri

4、depublic void phonate() System.out.println(sound);abstract class Lamppublic abstract void twinkle();class ConcreteLamp extends LampOverridepublic void twinkle() System.out.println(twinkle);class CarControllerpublic void move()System.out.println(move);public void sound()System.out.println(sound);publ

5、ic void light()System.out.println(light);class CarAdapter extends CarControllerprivate Sound sound;private Lamp lamp;public CarAdapter(Sound sound ,Lamp lamp)public void sound()sound.phonate();public void move()lamp.twinkle();public void light()sound.phonate();public class Client public static void

6、main(String args)Sound sound ;Lamp lamp;CarController car;sound = new ConcreteSound();lamp = new ConcreteLamp();car = new CarAdapter(sound, lamp);car.move();car.sound();car.light();2) 代码:package com.yue.www;import java.util.ArrayList;import java.util.List;abstract class Company private String s;publ

7、ic Company(String s) this.s = s;abstract void Add(Company c);abstract void Delete(Company c);class ConcreteDepartment extends Company private List list = new ArrayList();public ConcreteDepartment(String s) super(s);/ TODO Auto-generated constructor stubOverridevoid Add(Company c) list.add(c);Overrid

8、evoid Delete(Company c) list.remove(c);class HRDepartment extends Company private List list = new ArrayList();public HRDepartment(String s) super(s);/ TODO Auto-generated constructor stubpublic Overridevoid Add(Company c) list.add(c);Overridevoid Delete(Company c) list.remove(c);class FinanceDepartm

9、ent extends Company private List list = new ArrayList();public FinanceDepartment(String s) super(s);/ TODO Auto-generated constructor stubpublic Overridevoid Add(Company c) list.add(c);Overridevoid Delete(Company c) list.remove(c);public class Client public static void main(String args) ConcreteDepa

10、rtment con = new ConcreteDepartment(总);con.Add(new HRDepartment(分);3) 代码:package com.Factory.www; class FileOperation public String read(String fileName)System.out.println(读取文件);return fileName; class XMLDataConvertor public String convert(String fileStr) System.out.println(转换);return fileStr; class

11、 Dataanalysis public String handle(String xmlStr) System.out.println(分析);return xmlStr; class ReportDisplay public void display(String xmlStr) System.out.println(显示); abstract class AbstractFacade public abstract void execute(String fileName); class XMLFacade extends AbstractFacade private FileOpera

12、tion fo; private Dataanalysis da; private ReportDisplay rd; public XMLFacade() fo = new FileOperation(); da = new Dataanalysis(); rd = new ReportDisplay(); public void execute(String fileName) String str = fo.read(fileName);String xmlstr = da.handle(str);rd.display(str); class ExtendedFacade extends

13、 AbstractFacade public void ExtendeFacade() public void execute(String fileName) public void execute(String fileNmae) String str = fo.read(fileName);String xmlstr = da.handle(str);rd.display(str); public class Test public static void main(String args) AbstractFacade facade;facade = new AbstractFacade();facade.execute(file.xml);4 实验总结9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号