资源简介
大作业设计模式一(单子、工厂、策略模式)练习
假设现在要设计一个贩卖各类书籍的电子商务网站的购物车系统。对所有的教材类图书 实行每本一元的折扣;对连环画类图书提供每本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作业图形化.rar
- JAVA数据加密jar包之sunjce_provider.rar
- 客户管理系统Java+数据库
- java回合制游戏
- javaMD5加密
- java学生管理系统没用数据库
- JAVA程序设计 大炮打飞机 福州大学作
- jsp连接SQLserver数据库实现增删改查。
- javafx实现模拟电梯升降
- javaweb图书借阅管理系统171204
- java毕业设计:物业管理系统源码
- Java毕业设计源码:图书管理系统
- java学生成绩管理系统界面设计
- 基于RFID的智能门禁系统
- 百度网盘javaEE.txt
- Java利用vlc实现播放在线视频
- java基础GUI+JDBC学生管理系统
- java拼图游戏项目代码
- 一个简易的计算器 java小程序
- 人工智能自动扫雷
- java实现聊天的服务端
- Java语言程序设计与数据结构基础篇第
- Louvain java实现
- 用java实现2048小游戏的实验报告
- java大作业之留言板
- 大一java学生管理信息系统全
- 不错的中国象棋单机版
- java股票实时查询小软件
- java实现录频并播放
- 考试管理系统,期末大作业,java,
评论
共有 条评论