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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

装饰者模式肖正文.docx

1、装饰者模式肖正文云南大学软件学院实 验 报 告序号: 姓名:肖正文 学号:20121120141专业:软件工程 日期:2014/12/10 成绩: 实验二 装饰者模式的运用一、实验目的: 装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。在熟悉装饰者模式相关理论知识的基础上,使用装设者模式实现米线店结账小程序。二、实验要求:使用装饰者模式实现米线店结账程序,要求如下:1. 米线有三种,干浆、酸浆和水米线。2. 配料有三种,豆腐、鸡蛋、牛肉,今后还会更多。3. 客户可疑随心所欲的要各种米线搭配各种配料,配料可以加同一种加多份,或者不同种加多份。1、 设计并绘

2、制该程序的类图;2、 依照设计的类图使用Java语言编写代码,并实现该程序;3、 除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:a) 控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;b) 控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出;c) 设计并实现用户UI,Client初始化测试环境,并根据用户在UI控件上的输入运算,运行结果文本输出;三、实验内容: 1类图2代码主类:米线类package xiao.it.noodle;public abstract class Nooldel private String descri

3、ption=null; public String getDescription() return description;public void setDescription(String description) this.description = description;public abstract double cost(); 三种米线package xiao.it.cocretnoodle;import xiao.it.noodle.Nooldel;public class Gnoodles extends Nooldel public Gnoodles() String des

4、cription=干浆米线; setDescription(description); Override public double cost() / TODO Auto-generated method stub return 1; package xiao.it.cocretnoodle;import xiao.it.noodle.Nooldel;public class Snoodle extends Nooldel public Snoodle() String description=酸浆米线; setDescription(description); Override public

5、 double cost() / TODO Auto-generated method stub return 2; package xiao.it.cocretnoodle;import xiao.it.noodle.Nooldel;public class WNoodle extends Nooldel public WNoodle() String description=水米线; setDescription(description); Override public double cost() / TODO Auto-generated method stub return 3; 装

6、饰者接口package xiao.it.ConPDecorator;/* * 抽象的装饰类 */import xiao.it.noodle.Nooldel;public abstract class Peiliao extends Nooldel public abstract String getDescription(); Override public double cost() / TODO Auto-generated method stub return 0; 具体装饰:package xiao.it.ConSDecorator;import xiao.it.ConPDecorat

7、or.Peiliao;import xiao.it.noodle.Nooldel;public class Beef extends Peiliao private Nooldel n=null; public Beef(Nooldel n) this.n=n; Override public String getDescription() String str=n.getDescription(); if(str.indexOf(牛肉)!=-1) return str; else return 牛肉+n.getDescription(); public double cost() retur

8、n 5+n.cost(); package xiao.it.ConSDecorator;import xiao.it.ConPDecorator.Peiliao;import xiao.it.noodle.Nooldel;public class Egg extends Peiliao private Nooldel n = null; public Egg(Nooldel n) this.n = n; Override public String getDescription() / TODO Auto-generated method stub String str=n.getDescri

9、ption(); if(str.indexOf(鸡蛋)!=-1) return str; else return 鸡蛋+n.getDescription(); public double cost() return 2+n.cost(); package xiao.it.ConSDecorator;import xiao.it.ConPDecorator.Peiliao;import xiao.it.noodle.Nooldel;public class Tofu extends Peiliao private Nooldel n=null; public Tofu(Nooldel n) th

10、is.n=n; Override public String getDescription() / TODO Auto-generated method stub String str=n.getDescription(); if(str.indexOf(豆腐)!=-1) return str; else return 豆腐+n.getDescription(); public double cost() return n.cost()+1; UI类:package xiao.it.UI;import java.awt.Dimension;import java.awt.event.Actio

11、nEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTextArea;import ja

12、vax.swing.JTextField;import xiao.it.ConSDecorator.Beef;import xiao.it.ConSDecorator.Egg;import xiao.it.ConSDecorator.Tofu;import xiao.it.cocretnoodle.Gnoodles;import xiao.it.cocretnoodle.Snoodle;import xiao.it.cocretnoodle.WNoodle;import xiao.it.noodle.Nooldel;public class UI public void init() JFra

13、me f=new JFrame(); f.setBounds(0, 0, 400, 200); String str=干浆米线,酸浆米线,水米线; JPanel p1=new JPanel(); JLabel l1=new JLabel(加牛肉:); final JTextField jt1=new JTextField(10); JLabel l11=new JLabel(倍); p1.add(l1); p1.add(jt1); p1.add(l11); JPanel p2=new JPanel(); JLabel l2=new JLabel(加鸡蛋:); final JTextField

14、jt2=new JTextField(10); JLabel l12=new JLabel(倍); p2.add(l2); p2.add(jt2); p2.add(l12); JPanel p3=new JPanel(); JLabel l3=new JLabel(加豆腐:); final JTextField jt3=new JTextField(10); JLabel l13=new JLabel(倍); p3.add(l3); p3.add(jt3); p3.add(l13); JButton jtn=new JButton(点一份); final JComboBox j1=new JC

15、omboBox(str); j1.setPreferredSize(new Dimension(200, 20); /j1.setBounds(0, 0, 200, 20); Box box1=Box.createVerticalBox(); Box box2=Box.createVerticalBox(); box1.add(j1); box1.add(p1); box1.add(p2); box1.add(p3); box1.add(jtn); final JTextArea tea=new JTextArea(); jtn.addActionListener(new ActionList

16、ener() Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub String string=(String)j1.getSelectedItem(); Nooldel n=null; if(string.equals(干浆米线) n=new Gnoodles(); else if(string.equals(酸浆米线) n=new Snoodle(); else if(string.equals(水米线) n=new WNoodle(); int a=Integer.par

17、seInt(jt1.getText(); for(int i=0;ia;i+) n=new Beef(n); n=new Tofu(n); int b=Integer.parseInt(jt2.getText(); for(int i=0;ib;i+) n=new Egg(n); int c=Integer.parseInt(jt3.getText(); for(int i=0;ic;i+) n=new Tofu(n); tea.setText(n.getDescription()+:+n.cost()+元); ); box2.add(new JScrollPane(tea); JSplitPane top = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false, box1, box2); f.add(top); f.setVisible(true); public static void main(String args) new UI().init(); 运行结果四、实验总结: 指导教师签名:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2