ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:18.08KB ,
资源ID:5066839      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5066839.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(设计模式十二.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

设计模式十二.docx

1、设计模式十二一实验目的1. 熟悉UML统一建模语言;2. 回顾熟悉建造模式、原型模式;3. 熟悉XML文件的操作;4. 熟悉java的反射机制。二实验内容(1)某软件公司欲开发一个音频和视频播放软件,为了给用户使用提供方便,该播放软件提供了多种界面显示模式,如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异,如在完整模式下将显示菜单、播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下将显示主窗口、控制条、收藏列表等。现使用建造者模式设计该软件。(2)设计一个客户类Customer,其中客户地址存储在地址类Address中,用浅克隆和

2、深克隆分别实现Customer对象的复制并比较这两种克隆方式的异同。三实验环境PC微机;Windows 操作系统;Visual Studio 程序集成环境。四实验内容(1)某软件公司欲开发一个音频和视频播放软件,为了给用户使用提供方便,该播放软件提供了多种界面显示模式,如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异,如在完整模式下将显示菜单、播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下将显示主窗口、控制条、收藏列表等。现使用建造者模式设计该软件。ModelBuilder.javapackage 设计模式实验十二周_1;pu

3、blic abstract class ModelBuilder protected Model model=new Model(); public abstract void buildPlay(); public abstract void buildMenu(); public abstract void buildPlaylist(); public abstract void buildMainWindow(); public abstract void buildControlbar(); public Model getModel() return model; Diector.

4、javapackage 设计模式实验十二周_1;public class Diector private ModelBuilder mb; public void setModelBuilder(ModelBuilder mb) this.mb=mb; public Model construct() mb.buildPlay(); mb.buildMenu(); mb.buildPlaylist(); mb.buildMainWindow(); mb.buildControlbar(); return mb.getModel(); Model.javapackage 设计模式实验十二周_1;

5、public class Model private String play; private String menu; private String playlist; private String mainWindow; private String controlbar; public void setPlay(String play) this.play=play; public void setMenu(String menu) this.menu=menu; public void setPlaylist(String playlist) this.playlist=playlis

6、t; public void setMainWindow(String mainWindow) this.mainWindow=mainWindow; public void setControlbar(String controlbar) this.controlbar=controlbar; public String getPlay() return(this.play); public String getMenu() return(this.menu); public String getPlaylist() return(this.playlist); public String

7、getMainWindow() return(this.mainWindow); public String getControlbar() return(this.controlbar); CompleteModelBuilder.javapackage 设计模式实验十二周_1;public class CompleteModelBuilder extends ModelBuilder public void buildPlay() model.setPlay(完整模式:); public void buildMenu() model.setMenu(显示菜单); public void b

8、uildPlaylist() model.setPlaylist(显示播放列表); public void buildMainWindow() model.setMainWindow(显示主窗口); public void buildControlbar() model.setControlbar(显示控制条); MemoryModelBuilder.javapackage 设计模式实验十二周_1;public class MemoryModelBuilder extends ModelBuilder public void buildPlay() model.setPlay(记忆模式:);

9、public void buildMenu() model.setMenu(不显示菜单); public void buildPlaylist() model.setPlaylist(显示播放列表); public void buildMainWindow() model.setMainWindow(显示主窗口); public void buildControlbar() model.setControlbar(显示控制条); NetworkModelBuilder.javapackage 设计模式实验十二周_1;public class NetworkModelBuilder extend

10、s ModelBuilder public void buildPlay() model.setPlay(网络模式:); public void buildMenu() model.setMenu(显示菜单); public void buildPlaylist() model.setPlaylist(不显示播放列表); public void buildMainWindow() model.setMainWindow(显示主窗口); public void buildControlbar() model.setControlbar(显示控制条); ShortModelBuilder.java

11、package 设计模式实验十二周_1;public class ShortModelBuilder extends ModelBuilder public void buildPlay() model.setPlay(精简模式:); public void buildMenu() model.setMenu(显示菜单); public void buildPlaylist() model.setPlaylist(不显示播放列表); public void buildMainWindow() model.setMainWindow(不显示主窗口); public void buildContr

12、olbar() model.setControlbar(显示控制条); Client.javapackage 设计模式实验十二周_1;public class Client public static void main(String args) ModelBuilder mb=(ModelBuilder)XMLUtil.getBean(); Diector diector=new Diector(); diector.setModelBuilder(mb); Model model=diector.construct(); System.out.println(model.getPlay()

13、; System.out.println(model.getMenu(); System.out.println(model.getPlaylist(); System.out.println(model.getMainWindow(); System.out.println(model.getControlbar(); XMLUtil.javapackage 设计模式实验十二周_1;import java.io.*;public class XMLUtil public static Object getBean() try DocumentBuilderFactory dFactory =

14、 DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dFactory.newDocumentBuilder(); Document doc; doc = builder.parse(new File(configModel.xml); NodeList nl = doc.getElementsByTagName(classname); Node classNode=nl.item(0).getFirstChild(); String cName=classNode.getNodeValue(); Class c=Cl

15、ass.forName(cName); Object obj=c.newInstance(); return obj; catch(Exception e) e.printStackTrace(); return null; configModel.xml设计模式实验十二周_1.MemoryModelBuilderUML_1运行结果:(2)设计一个客户类Customer,其中客户地址存储在地址类Address中,用浅克隆和深克隆分别实现Customer对象的复制并比较这两种克隆方式的异同。浅克隆Client.javapackage 设计模式实验十二周_2_1;public class Clie

16、nt public static void main(String args) Address address = new Address(东北, , ); Customer xiaoming = new Customer(001, 小明, 13, address); Customer xiaohong = xiaoming.clone(); xiaohong.setName(小红); xiaohong.setId(002); xiaoming.show(); System.out.println(-); xiaohong.show(); System.out.println(-); Syst

17、em.out.println(xiaoming.equals(xiaohong); System.out.println(xiaoming.getAddr().equals(xiaohong.getAddr(); Address.javapackage 设计模式实验十二周_2_1;public class Address private String home; private String email; private String phone; public Address(String home,String email,String phone) this.setHome(home);

18、 this.setEmail(email); this.setPhone(phone); public String getHome() return home; public void setHome(String home) this.home = home; public String getEmail() return email; public void setEmail(String email) this.email = email; public String getPhone() return phone; public void setPhone(String phone)

19、 this.phone = phone; public void showAddress() System.out.println(Address:); System.out.println(Home:+getHome(); System.out.println(Email:+getEmail(); System.out.println(Phone:+getPhone(); Customer.javapackage 设计模式实验十二周_2_1;public class Customer implements Cloneable private String id; private String

20、 name; private int age; private Address addr; public Customer(String id,String name,int age,Address addr) this.setId(id); this.setName(name); this.setAge(age); this.setAddr(addr); public String getId() return id; public void setId(String id) this.id = id; public String getName() return name; public

21、void setName(String name) this.name = name; public int getAge() return age; public void setAge(int age) this.age = age; public Address getAddr() return addr; public void setAddr(Address addr) this.addr = addr; public Customer clone() Customer cus = null; try cus = (Customer) super.clone(); catch (Cl

22、oneNotSupportedException e) / TODO Auto-generated catch block e.printStackTrace(); return cus; public void show() System.out.println(id:+getId()+ name:+getName()+ age:+getAge(); getAddr().showAddress(); UML_2运行结果:深克隆Client.javapackage 设计模式实验十二周_2_2;public class Client public static void main(String

23、args) Address address = new Address(东北, , ); Customer xiaoming = new Customer(001, 小明, 13, address); Customer xiaohong = xiaoming.clone(); xiaohong.setName(小红); xiaohong.setId(002); xiaoming.show(); System.out.println(-); xiaohong.show(); System.out.println(-); System.out.println(xiaoming.equals(xia

24、ohong); System.out.println(xiaoming.getAddr().equals(xiaohong.getAddr(); Address.javapackage 设计模式实验十二周_2_2;import java.io.*;public class Address implements Serializable private String home; private String email; private String phone; public Address(String home,String email,String phone) this.setHome

25、(home); this.setEmail(email); this.setPhone(phone); public String getHome() return home; public void setHome(String home) this.home = home; public String getEmail() return email; public void setEmail(String email) this.email = email; public String getPhone() return phone; public void setPhone(String

26、 phone) this.phone = phone; public void showAddress() System.out.println(Address:); System.out.println(Home:+getHome(); System.out.println(Email:+getEmail(); System.out.println(Phone:+getPhone(); Customer.javapackage 设计模式实验十二周_2_2;import java.io.*;public class Customer implements Serializable privat

27、e String id; private String name; private int age; private Address addr; public Customer(String id,String name,int age,Address addr) this.setId(id); this.setName(name); this.setAge(age); this.setAddr(addr); public String getId() return id; public void setId(String id) this.id = id; public String get

28、Name() return name; public void setName(String name) this.name = name; public int getAge() return age; public void setAge(int age) this.age = age; public Address getAddr() return addr; public void setAddr(Address addr) this.addr = addr; public Customer clone() Customer cus = null; try ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(this); ByteArrayInputStream bais = new ByteArrayInputStream(baos.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1