1099111130设计模式实验报告(3)

2019-03-09 19:39

public interface CPU { } public class IntelCPU implements CPU { } public class AMDCPU implements CPU { } public interface 抽象工厂 { 主板 get主板(); CPU getCPU(); } public class AMD工厂 implements 抽象工厂 { } public class Intel工厂 implements 抽象工厂 { public 主板 get主板() { return new Intel主板();} public CPU getCPU() { return new IntelCPU(); }} public class Fanqiang { public static void main(String[] args) { 抽象工厂 zzr = new Intel工厂(); zzr.get主板().installCPU(); zzr.getCPU().run(); }} public 主板 get主板() { return new AMD主板(); } } return new AMDCPU(); public void run() { System.out.println(\我是AMDCPU\); } public void run() { System.out.println(\我是IntelCPU\); } void run(); public CPU getCPU() { 实验总结:在实验中深刻的理解了抽象工厂方法模式,在具体应用中比较了与前两种模式的不同之处 。

- 10 -

实验名称五:策略模式 实验时间:2012.0515 学时:2 实验地点:s203 实验目的:掌握策略模式的基本实现形式。体会策略模式的特点。掌握策略模式的基本应用。 实验步骤: 向客户报价,并不是一件容易的事情,需要考虑的因素特别多,就使得我们的程序需要考虑很多事情,比如客户身份的不同,会影响到报价的结果。再比如客户购买的物品数量和金额,同样会对最后的报价有影响,此实例仅考虑如下需求: (1)对普通客户或者是新客户报全价。 (2)对老客户报的价格,统一折扣5% (3)对大客户报的价格,统一折扣10% 3.2报价管理框架类图: (1)策略 public interface 策略 {public double 计算报价(double price);} (2)普通用户 public class 普通用户 implements 策略 { public double 计算报价(double price) { System.out.println(\对于普通客户,没有折扣\); return price; }} (3)老客户 public class 老客户 implements 策略 { public double 计算报价(double price) { System.out.println(\对于老客户,统一折扣5%\); return price*(1-0.05); }} (4)大客户

- 11 -

public class 大客户 implements 策略 { public double 计算报价(double price) { System.out.println(\对于老客户,统一折扣10%\); return price*(1-0.1); }} (5)报价 public class 报价 { private 策略 strategy = null; public 报价(策略 strategy){ this.strategy = strategy; } }} public double 获得价格(double price){ return this.strategy.计算报价(price); (6)Client客户端 public class Client { public static void main(String[] args) { 策略 strategy = new 大客户(); 报价 ctx = new 报价(strategy); double quote = ctx.获得价格(1000); System.out.println(\向客户报价:\+quote); }} 3.4、用户需求发生变化:除了上述的普通用户、老用户和大客户。又多了一类ZZR客户,这类客户统一折扣95%。请完善此应用扩展,完善代码。 public class ZZR implements 策略{ public double 计算报价(double price) { } } public class Client { } public static void main(String[] args) { 策略 strategy = new ZZR(); 报价 ctx = new 报价(strategy); double quote = ctx.获得价格(1000); System.out.println(\对于ZZR这样的客户,统一打95折\); return price*0.95; System.out.println(\向客户报价:\+quote); } 实验总结:通过实验掌握了策略模式和策略模式的拓展。也了解了应用策略模式的具体情况。

- 12 -

实验名称六:模板方法模式 实验时间:2012.05.15 学时:2 实验地点:s206 实验目的:掌握模板方法模式的基本实现形式,体会模板方法模式的特点,掌握模板方法模式的基本应用。 实验步骤: public abstract class 喝水模型 { public abstract void 倒水(); public abstract void 说话(); public abstract void 撞杯(); public abstract void 喝(); public boolean ff(){return true;} public void 喝水(){ this.倒水(); this.说话(); if(ff())this.撞杯(); this.喝();}} public class 软工 extends 喝水模型{ public void 倒水() { System.out.println(\);} public void 喝() { System.out.println(\);} public void 撞杯() { System.out.println(\);} public void 说话() { System.out.println(\);} public boolean ff() {return false;}} public class 客户端 { public static void main(String[] args) { } 喝水模型 m = new 软工(); m.喝水(); } 实验总结:通过实验掌握了模板方法模式。学习了钩子方法以及如何绘制UML图,也辅助复习了UML。

- 13 -

实验名称七:原型模式 实验时间:2012.05.21 学时:4 实验地点:s203 实验目的:掌握原型模式的基本实现形式,体会原型模式的特点,掌握原型模式的基本应用。 实验步骤: Book类; public class Book implements Cloneable {

private String name; private float price; private String author; private String owner; private String press; public String getName() { } public void setName(String name) { } public float getPrice() { } public void setPrice(float price) { } public String getAuthor() { } public void setAuthor(String author) { } public String getOwner() { } public void setOwner(String owner) { } - 14 -

return name; this.name = name; return price; this.price = price; return author; this.author = author; return owner; this.owner = owner;

public String getPress() { } public void setPress(String press) { } public String toString() { } public Object clone() throws CloneNotSupportedException { } } return super.clone(); return name+price+author+owner+press; this.press = press; return press; Lili类; public class Lili { public static void main(String[] args) throws } } Book a = new Book(); a.setAuthor(\); a.setName(\程序设计\); a.setOwner(\); a.setPress(\清华大学出版社\); a.setPrice(29.50f); Book b = (Book)a.clone(); b.setOwner(\); System.out.println(a); System.out.println(b); CloneNotSupportedException { 实验总结:通过实验了解了原型模式的结构的优点和缺点。还知道了适用场景。

- 15 -


1099111130设计模式实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[最新版]重庆科技学院毕业设计格式 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: