使用state pattern替代if else (3)

2008-05-24 05:36:00.0     推荐:0    收藏:0    评论:0     来源:chinaitlab

儿童片ChildrenPrice类,实现abstract class Price ,实现儿童片租赁总价getCharge(int days)及儿童片租赁积分getIntegral(int days)。

package com.qujingbo.movie;

/** *//**
*

Title:儿童片租赁积分、价格实现
*


*

Description:
*


*

Date:2006-10-14 15:49:04
*


*
* @author EOMS 曲静波
* @version 1.0
*/
public class ChildrenPrice extends Price {

/** *//**
* 儿童片返回租赁积分,儿童片积分规则为: 根据
*/
public double getIntegral(int days) {
// 返回租赁影片积分
return days * 1.5;
}

/** *//**
* 儿童片返回租赁价格
*/
public double getCharge(int days) {
// 影片单价
double result = 1.5;
// 如果租赁时间大于3天则做价格优惠
if (days > 3) {
result += (days - 3) * 1.5;
}
// 返回租赁影片总价
return result;
}

}


普通片RegularlPrice类,实现abstract class Price ,实现普通片租赁总价getCharge(int days)及普通片租赁积分getIntegral(int days)。

package com.qujingbo.movie;

/** *//**
*

Title:普通片租赁积分、价格实现
*


*

Description:
*


*

Date:2006-10-14 15:50:10
*


*
* @author EOMS 曲静波
* @version 1.0
*/
public class RegularlPrice extends Price {
/** *//**
* 普通片返回租赁积分,普通片积分规则
*/
public double getIntegral(int days) {
// 返回租赁影片积分
return days * 2;
}

/** *//**
* 普通片返回租赁价格
*/
public double getCharge(int days) {
// 单价为2
double result = 2;
// 如果租赁天数大于2则,则优惠
if (days > 2) {
result += (days - 2) * 1.5;
}
// 返回总价
return result;
}

}


最新发布片NewReleasePrice类,实现abstract class Price ,实现最新发布片租赁总价getCharge(int days)及最新发布片租赁积分getIntegral(int days)。

package com.qujingbo.movie;

/** *//**
*

Title:最新发布片租赁积分、价格实现
*


*

Description:
*


*

Date:2006-10-14 15:48:51
*


*
* @author EOMS 曲静波
* @version 1.0
*/
public class NewReleasePrice extends Price {
/** *//**
* 最新发布片返回租赁积分,最新发布片积分规则
*/
public double getIntegral(int days) {
// 返回租赁影片积分
return days * 3;
}

/** *//**
* 最新发布片返回租赁价格
*/
public double getCharge(int days) {
// 新片没有优惠,单价为3
return days * 3;
}

}


您可以针对本文进行:[评论]  [收藏]  [推荐]   [查看原文链接]  
  • 共有0条评论  点击查看更多评论
  • 网友评论仅供网友表达个人看法,并不表明e800同意其观点或证实其描述
我想发表评论:
用户名密码
  • 匿名发表
    验证码: