策略模式作业

策略模式作业

ID:40312877

大小:53.00 KB

页数:5页

时间:2019-07-30

策略模式作业_第1页
策略模式作业_第2页
策略模式作业_第3页
策略模式作业_第4页
策略模式作业_第5页
资源描述:

《策略模式作业》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告1实验内容:Strategy模式的应用某公司专门销售各种打印机,销售打印机时都有一定的折扣让利给顾客,但折扣计算的方法有很多种,如:不打折;每台减扣固定的金额;按售价的5%打折等等,且折扣计算方法可能发生变化。现在要开发该公司的销售系统,实现打印机销售时的价格计算。2实验要求:请用strategy模式设计解决方案。你的方案要能够使得在销售打印机(即使是同一种打印机)时可以灵活的选用价格计算方法,并且可以很容易地增加或修改价格计算方法而不至于对整个系统的维护造成困难。实验报告中要求包含设计方案的类图,并给出相应的Java源程序(要求实现图形用户界面)。类图设计如下:J

2、ava源程序:1、策略Strategy.javapublicinterfaceStrategy{publicabstractdoublegetprice(doubleprice);}2、具体策略策略一原价售出StrategyOne.javapublicclassStrategyOneimplementsStrategy{publicdoublegetprice(doubleprice){doublethePrice=price;returnthePrice;}}策略二减价30元售出StrategyTwo.javapublicclassStrategyTwoimplement

3、sStrategy{publicdoublegetprice(doubleprice){doublethePrice=price-30;returnthePrice;}}策略三折扣5%StrategyThree.javapublicclassStrategyThreeimplementsStrategy{publicdoublegetprice(doubleprice){doublethePrice=price*0.95;returnthePrice;}}3、上下文Printer.javapublicclassPrinter{Strategystrategy;publicv

4、oidsetStrategy(Strategystrategy){this.strategy=strategy;}publicdoublegetPrice(doubleprice){if(strategy!=null)returnstrategy.getprice(price);elsereturn0;}}4、模式的使用Application.javaimportjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassApplicationimplementsActionListener{JFrame

5、app;JPanelp1,p2,p3;JLabellabel1,label2,label3,label4;JTextFieldtxf;JComboBoxcombo;JButtonbutton1;publicApplication(){app=newJFrame("Printer");app.setSize(400,150);app.setVisible(true);Containerc=app.getContentPane();//初始化String[]s={"不打折","减30元","折扣5%"};combo=newJComboBox(s);txf=newJTextFie

6、ld("",5);button1=newJButton("计算");label1=newJLabel("打印机原价:");label2=newJLabel("价格计算方法:");label3=newJLabel("折扣后价格:");label4=newJLabel("元");//将控件放入面板中p1=newJPanel();p1.add(label1);p1.add(txf);p1.add(label2);p1.add(combo);c.add(p1,BorderLayout.NORTH);p2=newJPanel();p2.add(label3);p2.add(label

7、4);c.add(p2,BorderLayout.CENTER);p3=newJPanel();p3.add(button1);c.add(p3,BorderLayout.SOUTH);//按钮响应事件button1.addActionListener(this);}//按钮响应函数publicvoidactionPerformed(ActionEvente){Pricepr=newPrice();if(e.getSource()==button1){//策略一if(combo.getSelectedItem().

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。