




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一.实验目的熟悉UML统一建模语言;回顾熟悉建造模式、原型模式;熟悉XML文件的操作;熟悉java的反射机制。二.实验内容(1)某软件公司欲开发一个音频和视频播放软件,为了给用户使用提供方便,该播放软件提供了多种界面显示模式,如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异,如在完整模式下将显示菜单、播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下将显示主窗口、控制条、收藏列表等。现使用建造者模式设计该软件。(2)设计一个客户类Customer,其中客户地址存储在地址类Address中,用浅克隆和深克隆分别实现Customer对象的复制并比较这两种克隆方式的异同。三.实验环境PC微机;Windows操作系统;VisualStudio程序集成环境。四.实验内容(1)某软件公司欲开发一个音频和视频播放软件,为了给用户使用提供方便,该播放软件提供了多种界面显示模式,如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异,如在完整模式下将显示菜单、播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下将显示主窗口、控制条、收藏列表等。现使用建造者模式设计该软件。package设计模式实验十二周_1;publicabstractclassModelBuilder{protectedModelmodel=newModel();publicabstractvoidbuildPlay();publicabstractvoidbuildMenu();publicabstractvoidbuildPlaylist();publicabstractvoidbuildMainWindow();publicabstractvoidbuildControlbar();publicModelgetModel(){returnmodel;package设计模式实验十二周_1;publicclassDiector{privateModelBuildermb;=mb;publicModelconstruct(){();();();();();return();}}package设计模式实验十二周_1;publicclassModel{privateStringplay;privateStringmenu;privateStringplaylist;privateStringmainWindow;privateStringcontrolbar;publicvoidsetPlay(Stringplay){=play;}publicvoidsetMenu(Stringmenu){=menu;}publicvoidsetPlaylist(Stringplaylist){=playlist;}=mainWindow;publicvoidsetControlbar(Stringcontrolbar){=controlbar;}publicStringgetPlay(){return;}publicStringgetMenu(){return;}publicStringgetPlaylist(){return;}publicStringgetMainWindow(){return;publicStringgetControlbar(){return;}}package设计模式实验十二周_1;publicclassCompleteModelBuilderextendsModelBuilder{publicvoidbuildPlay(){("完整模式:");}("显示菜单");publicvoidbuildPlaylist(){("显示播放列表");}publicvoidbuildMainWindow(){("显示主窗口");}publicvoidbu订dControlbar(){("显示控制条");}}package设计模式实验十二周_1;publicclassMemoryModelBuilderextendsModelBuilder{publicvoidbuildPlay(){("记忆模式:");}publicvoidbuildMenu(){("不显示菜单");}publicvoidbuildPlaylist(){("显示播放列表");}publicvoidbuildMainWindow(){("显示主窗口");}publicvoidbuildControlbar(){("显示控制条");}package设计模式实验十二周_1;publicclassNetworkModelBuilderextendsModelBuilder{publicvoidbuildPlay(){("网络模式:");}publicvoidbuildMenu(){("显示菜单");}publicvoidbuildPlaylist(){("不显示播放列表");}("显示主窗口");publicvoidbuildControlbar(){("显示控制条");}}package设计模式实验十二周_1;publicclassShortModelBuilderextendsModelBuilder{publicvoidbuildPlay(){("精简模式:");}("显示菜单");publicvoidbuildPlaylist(){("不显示播放列表");}publicvoidbuildMainWindow(){("不显示主窗口");}publicvoidbuildControlbar(){("显示控制条");}}package设计模式实验十二周_1;publicclassClient{publicstaticvoidmain(Stringargs[]){ModelBuildermb=(ModelBuilder)();Diectordiector=newDiector();(mb);Modelmodel=();}}package设计模式实验十二周_1;importimport.*;publicstaticObjectgetBean(){try{DocumentBuilderFactorydFactory=();DocumentBuilderbuilder=();Documentdoc;doc=(newFile(""));NodeListnl=("classname");NodeclassNode=(0).getFirstChild();StringcName=();Classc=(cName);Objectobj=();returnobj;catch(Exceptione){();returnnull;}}}<?xmlversion=""?><config><classname>设计模式实验十二周</classname〉</config>UML_1OMadalaflB^Sfringme*xiiSinnsSking口Earn谢ndcwClnn^EEnfcrdb-jr:StaringiviPb^jah^Siring:widOMadalaflB^Sfringme*xiiSinnsSking口Earn谢ndcwClnn^EEnfcrdb-jr:StaringiviPb^jah^Siring:widivlhAMiu|nm:firingvoidsefPhyJktlpl^Ki::Siyi^g'l:wid5eiMa5r^ndcirtlfna*iWlndaMSir^Q^wdselD^nrdtddcofV'dbaF:Schngl.ioidT・WliyO:轴;ngg(rlhV"u(l;Siring+gelPiajiirlt!iSirnogeiMhnWlod口和口Sbin^鼻gviCorArolbw^Elrri^■-mcideli■MUdPfarf^v^d+twWWJWupMft'tf+占鲨虽ghW4hwMMjhnW^^Bh^L*g七>占曲it口nftgfiwn?;t-a^GMWBuildk0Oi*<?Tjrnmt!ModeBulder+sclModdSUIdcKrnbiMcdd&jlW^i旳id*ccn-raxic?^Mods!❻事btw。凶iBuldwrebuildPky<«;void4buldMcfluOiPd•biAldPLa^rtiD.tfdd■buldMflinMiindD'aj]:nid0biilHlLcrfrxslhir[|:rciT|@N«¥tfcAMoJel3^ldeirbu^layQi"ioidlbuJdMtTiLiOE曲Idbuicflr^fa^i:vuidbuiG^pn^ndcw^旳讨+buidConlrcikivZi何討站G>v>phMh7odeBulderbddFIdpCLwidbuldMItniJj:*口;dbuldFIj^-liMII:mid■hjWWaWwindent[li>-dd+todkiCc^^oitMrQi・Sd&WemorpModel^wider盘MH叫卢忒厂buHMeniiniiodhuklPh^niQ:rad4buHMflir^MndowQ:raidQbdE〔^7dbjrl〕i皿日运行结果:;:_ProblemsJavadoc風Declaration旦ConsoleS3<terminated>Client(4)[JavaApplication]C:\Java\jrel.S.0_12l\bin\javaw„exef20i7年5月9日下午3:11:17)脈舷:不耳示茱羊品示播説弼未呂示圭窮口显示担述条(2)设计一个客户类Customer,其中客户地址存储在地址类Address中,用浅克隆和深克隆分别实现Customer对象的复制并比较这两种克隆方式的异同。浅克隆package设计模式实验十二周_2_1;publicclassClient{publicstaticvoidmain(String[]args){Addressaddress=newAddress("东北","“,"");Customerxiaoming=newCustomer("001","小明",13,address);Customerxiaohong=();("小红");("002");();();package设计模式实验十二周_2_1;publicclassAddress{privateStringhome;privateStringemail;privateStringphone;publicAddress(Stringhome,Stringemail,Stringphone){(home);(email);(phone);}publicStringgetHome(){returnhome;publicvoidsetHome(Stringhome){=home;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){=email;}publicStringgetPhone(){returnphone;}publicvoidsetPhone(Stringphone){=phone;publicvoidshowAddress(){"Address:");"Home:"+getHome());"Email:"+getEmail());"Phone:"+getPhone());package设计模式实验十二周_2_1;publicclassCustomerimplementsCloneable{privateStringid;privateStringname;privateintage;privateAddressaddr;publicCustomer(Stringid,Stringname,intage,Addressaddr){(id);(name);(age);(addr);}publicStringgetId(){returnid;}publicvoidsetId(Stringid){=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){=age;}publicAddressgetAddr(){returnaddr;}publicvoidsetAddr(Addressaddr){=addr;}publicCustomerclone(){Customercus=null;try{cus=(Customer)();}catch(CloneNotSupportedExceptione){howAddress();}}UML_2
运行结果:■*_ProblemsJavadoc曉.Dedaration旦Consolej<termimated>Client(5)[JavaApplication]C:\Java\jrcl.8.0_l2l\biavaw.cxe(2017年5月今巳下午■石)*d:€01name:駆age:13jftddress:Home:苗北Email::daniing@16弓.comPhonert33&64466S9id:-002name:4tage:13Address:Home:京北Emai1:daming@163“comPhonealsetrue深克隆package设计模式实验十二周_2_2;publicclassClient{publicstaticvoidmain(String[]args){Addressaddress=newAddress(Addressaddress=newAddress("东北","“,"");Customerxiaoming=newCustomer("001","小明"13,address);Customerxiaohong=();("小红");("002");();();");package设计模式实验十二周_2_2;import.*;publicclassAddressimplementsSerializable{privateStringhome;privateStringemail;privateStringphone;publicAddress(Stringhome,Stringemail,Stringphone){(home);(email);(phone);}publicStringgetHome(){returnhome;publicvoidsetHome(Stringhome){=home;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){=email;}publicStringgetPhone(){returnphone;}publicvoidsetPhone(Stringphone){=phone;publicvoidshowAddress(){"Address:");"Home:"+getHome());"Email:"+getEmail());"Phone:"+getPhone());package设计模式实验十二周_2_2;import.*;publicclassCustomerimplementsSerializable{privateStringid;privateStringname;privateintage;privateAddressaddr;publicCustomer(Stringid,Stringname,intage,Addressaddr){(id);(name);(age);(addr);}publicStringgetId(){returnid;}publicvoidsetId(Stringid){=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){=age;}publicAddressgetAddr(){returnaddr;}publicvoidsetAddr(Addressaddr){=addr;}publicCustomerclone(){Customercus=null;try{ByteArrayOutputStreambaos=newByteArrayOutputStream();ObjectOutputStreamoos=newObjectOutputStream(baos);(this);ByteArrayInputStreambais=newByteArrayInputStream());ObjectInputStreamois=newObjectInputStream(bais);cus=(Customer)();
}catch(ClassNotFoundExceptione){howAddress();UML_3nhome:Stringbnhome:StringbsmaikString口phone:String&Addre-ss^hame
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铜仁职业技术学院《设计软件应用》2023-2024学年第二学期期末试卷
- 浙江省温州市苍南县2024-2025学年数学三下期末教学质量检测试题含解析
- 四川省成都市达标名校2025年高三下学期第二次调研测试英语试题含解析
- 江西师范大学《医学微生物学C》2023-2024学年第二学期期末试卷
- 齐鲁师范学院《广告市场调查》2023-2024学年第二学期期末试卷
- 割胶打胶施工方案
- 工程项目文件及信息管理要点
- 山东省威海市2024-2025学年高二上学期期末考试英语试题【含答案】
- 隔断吊顶施工方案模板
- 广西南宁市2024-2025学年高一上学期期末教学质量调研数学试卷
- 2024年重庆市集中选调应届大学毕业生到基层工作考试真题
- 2025年个人投资合同电子版模板
- 车辆挂靠协议书
- 2025年湖南交通职业技术学院单招职业适应性测试题库1套
- 2017年公务员多省联考《申论》真题(吉林甲级卷)及参考答案(含详细解析)
- 一年级下册健康成长教案
- 电力系统老化问题及其隐患解决方案研究报告发布
- 2025年江西建设职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 社区中央厨房运营模式计划
- 盐酸安非他酮合成工艺优化-洞察分析
- 2021年考研英语一真题
评论
0/150
提交评论