《设计模式实验报告java.docx》由会员分享,可在线阅读,更多相关《设计模式实验报告java.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、设计模式实验报告学院:交通运输学院专业电子商务班级:姓名: 学号:指导教师:目录一、实例-3 -实例1:模拟变形金刚变形(装饰者模式)-3-1 .UML 图:-3-2源代码:-3-3 .运行截图: -5 -实例2:模拟手机功能的升级过程(装饰者模式)-3-1.UML 图:-3-2源代码:-3-3.运行截图:-5 -、总结-9 -、实例实例1:模拟变形金刚变形(装饰者模式)1.UML 图:2源代码:/抽象组件public abstract class Transformer publicabstractStringintrouduce();publicabstractStringspeak();
2、publicabstractStringaction();/具体组件0 Ptimus Prim 作为抽象组件Transformer的子类基本的功能可在陆地 行驶public class OptimusPrime extends Transformer Overridepublic String introuduce() System, out .printin (;return null;/To change body of generated methods, choose Tools | Templates. )Overridepublic String speak()我是汽车人。n);r
3、eturn null;/To change body of generated methods, choose Tools | Templates.Overridepublic String action() System. out. printin (能够变形);return null;/To change body of generated methods, choose Tools | Templates./装饰(change)也是抽象组件Transformer的子类用于对具体组件的装饰添加新功 能public abstract class Change extends Transfor
4、mer protected Transformer transformer;public Change() )public Change(Transformer transformer) this , transformer = transformer;)/具体装饰汽车一一装饰变形金刚后可以在陆地上移动public class Car extends Change public Car (Transformer transformer) super(transformer);)Overridepublic String introuduce() System. out .printin (原始
5、形态:汽车”);returnull; /To change body of generated methods, choose Tools I Templates. Override public String speak() System. out .printin (不 会说话”);returnull; /To change body of generated methods, choose Tools I Templates. Override public String action() System.out .println (能 够在陆地上移动”);returnull; /To c
6、hange body of generated methods, choose Tools I Templates./具体装饰机器人一一装饰变形金刚后可以说话public class Robot extends Change public Robot(Transformer transformer) super(transformer);)Overridepublic String introuduce()(变化形态:机器人”);returnull; /To change body of generated methods, choose Tools | Templates.)Override
7、public String speak() System. out. printin (会 说话);returnull; /To change body of generated methods, choose Tools | Templates.Overridepublic String action() System. out.printin (能 够在陆地上移动”);returnull; /To change body of generated methods, choose Tools | Templates.具体装饰飞机一装饰变形金刚后可以飞public class Airplane
8、 extends Change public Airplane(Transformer transformer) super(transformer);Overridepublic String introuduce() System. out .println (变化形态:飞机。n );returnull; /To change body of generated methods, choose Tools I Templates.Overridepublic String speak() System, out println (不 会说话。”);returnull; /To change
9、 body of generated methods, choose Tools I Templates.Overridepublic String action () Systm. out .println (不仅能够在陆地上移动,还能在天空中飞翔。”);returnull; /To change body of generated methods, choose Tools I Templates.3.运行截图:琢n :我叫祭天柱、我是汽车人.能够畦厚始形态2汽车才会诀话能够在畔上移动变化形志2机器人会谅话能够在觥上移动甄 形态:飞机.不会诀话噜不仅能够在后坛上移动还能在天空中飞翔嘈攻功构
10、连(恶时闰:1秒实伤II 2:模拟手机功能的升级过程(装饰者模式)1.UML 图:/抽象组件public abstract class Phone public abstract String Functions();/具体组件Simp.-作为抽象组件Phone的子类基本的功能public class Simple extendsPhone Overridepublic String Functions() System. out.printin (功能:当收到来电时,n” + 发出声音提醒”);returnnull; /To change body of generated methods,
11、 choose Tools | Templates./装饰(UpGrad)-也是抽象组件Phone的子类用于对具体组件的装饰添加新功能 public abstract class UpGrade extendsPhone protected Phone phone;public UpGrade() public UpGrade(Phone phone) this.phone = phone;/具体装饰UpGradel 添加震动功能public class Upgrade extendsUpGrade public Upgrade_l(Phone phone) super(phone);priv
12、ate String NewFunctions() System. out .printin (并 且产生震动);returnull; /To change body of generated methods, choose Tools I Templates. Override public String Functions() phone . Functions();NewFunctions();returnull; /To change body of generated methods, choose Tools I Templates.)/具体装饰UpGrade2 添加灯光闪烁提示功
13、能public class Upgrade_2 extendsUpGrade public Upgrade_2(Phone phone) super(phone);)private String NewFunctions() Sy stem .out.pr in tin (伴随有灯光闪烁提示“);returnull; /To change body of generated methods, choose Tools | Templates.Overridepublic String Functions() phone . Functions();NewFunctions();returnul
14、l; / /To change body of generated methods , choose Tools | Templates.3.运行截图:系列手机:第二代手机;功能:当收到来电可,发出声者提更第2代手机二功能,当收到来电时,发出声者提管关且士生硬功第3代手机:功统,当收到来电时,发出声吉提匪关且土生震动 伴随有灯光闪烁提示戌幼枸泡(总AlE: 9秒)5 口整个java设计模式都贯穿着一个原则:面向抽象界面编程,而非 面对实现。在此之前,我们也学习过Java编程,那时学习的主要理念 是面对对象编程,而非面对过程。我感觉在学习Java时学习的是处理 问题的方法,在学习设计模式时学习的是面对某个问题要运用哪些方法 来处理,如何组合方法。在学习Java设计模式的过程中,所要学习的是 其处理问题的思想,而非如何去套用模式解决问题。模式不是数学公 式、也不是物理定律、更不是软件设计中的“法律”条文,一个模式只 是成功解决某个特定问题的设计方案,我们学习它,吸收其处理问题 的理念,而不是让它束缚我们的思想。对Java设计模式的学习是建立于 一定软件开发的基础上的,因此,我们对Java设计模式的学习不应止 步于课堂,还要在日后的学习、工作中加强相应的练习与实践,做到应 对需求编程,合理运用模式,不要为了使用模式而用设计模式。