资源简介
大作业设计模式一(单子、工厂、策略模式)练习
假设现在要设计一个贩卖各类书籍的电子商务网站的购物车系统。对所有的教材类图书 实行每本一元的折扣;对连环画类图书提供每本7%的促销折扣;而对非教材类的计算机图书有3%的折扣;对其余书没有折扣。使用策略模式、工厂模式、单子模式进行设计
代码片段和文件信息
package homework6;
import java.util.ArrayList;
class PricingStrategyFactory{
private static PricingStrategyFactory instance;
private PricingStrategyFactory () {}
public static synchronized PricingStrategyFactory getInstance() {
if(instance == null) {
instance = new PricingStrategyFactory ();
}
return instance;
}
public IPricingStrategy getPricingStrategy(int bookType){
IPricingStrategy ips = null;
switch(bookType) {
case 0: ips = new NoDiscountStrategy();break;
case 1: ips = new FlatRateStrategy(1);break;
case 2: ips = new PercentageStrategy(3);break;
case 3: ips = new PercentageStrategy(7);break;
}
return ips;
}
}
class ProductSpecification{
public String isbn;
public String title;
public double price;
public int type;
public ProductSpecification(String s1String s2double dint t){
isbn=s1; title=s2; price=d; type=t;
}
public double getPrice(){
return price;
}
public String toString(){
return String.format(“isbn:%-20stitle:%-20sprice:%-20stype:%-20s“ isbntitlepricetype);
}
}
class SaleLineItem {
private int copies;
private ProductSpecification pSpec;
private IPricingStrategy strategy;
public SaleLineItem(int cProductSpecification p){
copies=c;
pSpec=p;
PricingStrategyFactory psf = PricingStrategyFactory.getInstance();
strategy = psf.getPricingStrategy(pSpec.type);
}
public void setCopies(int c){copies=c;}
public int getCopies(){return copies;}
public String gettitle(){return pSpec.title;}
public String getIsbn(){return pSpec.isbn;}
public double getPrice(){return pSpec.price;}
public double getSubTotal(){return strategy.getSubTotal(this);}
}
interface IPricingStrategy{
public int getStrategyType();
public String getData();
public double getSubTotal(SaleLineItem item);
}
class NoDiscountStrategy implements IPricingStrategy{
public int strategyType=0;
public String getData(){return “0“;}
public int getStrategyType(){return strategyType;}
public double getSubTotal(SaleLineItem item){
return item.getPrice()*item.getCopies();
- 上一篇:json-lib和json-rpc jar包
- 下一篇:java作业图形化.rar
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论