使用Java设计一个图书打折系统

书店推出打折消息:

[1]对于“新书”,没有折扣;

[2]对于“计算机”类图书,固定折扣为10元;

[3]对于“经管”类图书,折扣的书价的10%;

[4]购买5本以上的图书,固定折扣为20元;

[5]在所有的折扣计算后,总的折扣价不得超过50元。

1.使用Strategy模式

对于打折消息[1],[2],[3]针对三种类型的图书,可以使用Strategy模式。

NoDiscountStrategy代表购买“新书”的打折策略-没有折扣;

FlatRateStrategy代表购买“计算机”类图书的打折策略-固定折扣价;

PercentageStrategy代表购买“经管”类图书的打折策略-百分比折扣价。

<<abstract>>DiscountStrategy.java

package com.zj.books.strategy;
public abstract class DiscountStrategy {
   protected double _price = 0.0;
   public DiscountStrategy(double price) {
    _price = price;
   }
   abstract public double calculateDiscount();
……
}

_price代表图书的价格;抽象方法calculateDiscount()表示具体的打折计算逻辑,延迟到子类中实现。下面的三个子类的部分逻辑。

NoDiscountStrategy.java

package com.zj.books.strategy;
public class NoDiscountStrategy extends DiscountStrategy {
   public NoDiscountStrategy(double price) {
    super(price);
   }
   public double calculateDiscount() {
    return 0.0;
   }
}

时间: 2025-01-20 12:21:48

使用Java设计一个图书打折系统的相关文章

Java设计一个教学管理系统,要求如下

问题描述 Java设计一个教学管理系统,要求如下 设计一个教学管理系统,考虑到教师.学生.班级.课程.成绩等变量;设计实现类和类的关系,如下: 1.教师和学生都能登入系统,有不同的功能,登录密码为空(提示用继承和多态实现) 2.教师可以录入指定班级指定课程的学生成绩,以字符串输入 3.学生可以登录进去查询某门课程的成绩(自己的或全班的都可以查)和自己的排名 注意:每一个类中要使用无参的构造方法;并且实现数据域的封装 解决方案 教学管理信息系统的设计 解决方案二: http://down.51ct

spring-想用java写一个博客系统

问题描述 想用java写一个博客系统 想用java写一个自己的博客程序,现在问题来了,由于不想 用jsp+servlet感觉太乱,就苦苦在网上找该用什么框架,什么方案,能保证安全,能保证速度,这里问过一些朋友意见不一,下面是自己定出来的一些框架搭配 1.struts+spring+hibernate(感觉有hibernate的地方速度不怎么样) 2.springmvc+jdbctemplate 3.直接springmvc 4.springmvc+mybatis 这里想请教各位高手该如何选呢,或者

Java编写一个图书管理系统,要使用JDVC技术访问,带有SQL数据库,请问怎么写

问题描述 Java编写一个图书管理系统,要使用JDVC技术访问,带有SQL数据库,请问怎么写 Java编写一个图书管理系统,要使用JDVC技术访问,带有SQL数据库,请问怎么写 解决方案 http://download.csdn.net/detail/u014029255/8284261 解决方案二: 1.写界面 2.写数据库连接 3.写数据库的增删改查 4.处理细节

代码-java设计一个管理系统

问题描述 java设计一个管理系统 基于java设计一个学生成绩管理系统,要求有界面,且有增加,查询,修改,删除,退出功能,代码怎么写? 解决方案 这个在网上搜索一下就可以吧. 解决方案二: 界面的代码用easyUI可以自动生成,数据用SQL 解决方案三: 找个jservlet的资料看看你就知道怎么弄了

用java写一个通知公告系统

问题描述 用java写一个通知公告系统 要求用户打开页面后可以直接看到发布的通知公告,并且可以下载,管理员可以上传通知公告或者共享文件,管理员上传界面包括标题,内容和图片,用java 语言写 解决方案 这个用java web相关技术都可以实现,简单的jsp+servlet+javabean 稍微复杂一点的采用可采用ssh等框架实现.没有什么难度!

设计一个门禁系统

问题描述 最近单位要搞一个门禁系统,我不知道国内哪个公司在这个方面厉害,谁帮帮我小弟我感激涕零! 解决方案 解决方案二:http://www.yoyon.net/public.asp?id=12&fileId=2&listId=12&lan=&Pid=39耀阳门禁管理系统解决方案三:十大门禁识别系统品牌(排名不分先后)十大门禁识别系统品牌:DDS中国有限公司DDS中国有限公司是一家专业从事门禁系统的机构,同时兼顾智能巡更.报警管理及相关安防业务,集系统设计.产品开发.销售和

如何设计一个RPC系统

RPC是一种方便的网络通信编程模型,由于和编程语言的高度结合,大大减少了处理网络数据的复杂度,让代码可读性也有可观的提高.但是RPC本身的构成却比较复杂,由于受到编程语言.网络模型.使用习惯的约束,有大量的妥协和取舍之处.本文就是通过分析几种流行的RPC实现案例,提供大家在设计RPC系统时的参考. 由于RPC底层的网络开发一般和具体使用环境有关,而编程实现手段也非常多样化,但不影响使用者,因此本文基本涉及如何实现一个RPC系统. 认识RPC(远程调用) 我们在各种操作系统.编程语言生态圈中,多少

设计-如何建立一个学生选课系统

问题描述 如何建立一个学生选课系统 假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课.试设计一个选修课程系统,使之能提供以下功能: 解决方案 在数据库中创建两个表,分别是学生信息表和课程信息表,学生信息表包含学生学号和学分,学生的学分大于等于15就可以自由选课,少于则不行,也就是根据学生的学分加个判断条件,可以在数据库中用触发器,也可以在前端自己用编程语言加判断,这些你自己决定吧,我数据库不

linux-java开发一个日志监控系统

问题描述 java开发一个日志监控系统 java开发一个日志监控系统,监控linux日志和windows日志,并把当前监控情况在web页面上展现 解决方案 没看明白是什么意思,是web项目不?如果是,可以用spring的AOP做日志,很方便,效率也高,把日志存数据库然后再做显示 解决方案二: 是web项目, 但是不是写日志.而已用java程序来监控window下的日志文件,有些日志文件是在linux下的(因为有些项目是部署在linux系统里的).需要是读取这些日志文件,如果监控到日志文件中有er