黑马程序员之移动通信分析学习

---------------------- android培训java培训、期待与您交流! ---------------------- 

移动计费系统学习

我感觉最主要的还是一种思想,一种逻辑,代码基础学扎实了没什么问题,重在是学习老师的一种思考问题的方式

一共有两种用户:vip和普通用户,然后二者都有基本资费和优惠套餐,然后计算出每种用户的每月的账单

 

首先统一各类用户在各种情况下的费用计算公式

整体月租基本费或月租费:月基本费方式为固定值,月租费方式为当月总天数每天费用或者<当月总天数-入网日+1>每天费用,只有vip用户才存在此项费用,但是为了统一计算公式,可以认为普通用户也有此项费用,值为0;

电话收费时长:等于(电话时长-免费时长),计算后的值小于0,则计为0;免费时长又分为两类:新入网的免费和套餐中的免费,新入网的免费在用户对象中处理,套餐中的免费封装在套餐策略对象中处理。电话,短信,数据套餐月功能费:只有普通用户定了套餐才有此项费用,但是为了统一计算公式,可以认为没定此功能套餐的普通用户和vip用户也有此项费用,值为0.

月电话费用=电话套餐月功能费+单位计费价格*电话收费时长

按月电话费用的相同规则计算月短信费用和月数据费用

月总计费用=整体月基本费或月租费+月电话费用+月短信费用+月数据费用

然后在配置文件中存储各项数据:要存储的数据项有:功能单价费用,功能套餐免费数量,功能套餐月费用,新入网免费数量,整体月基本费或月租费

一些数据要进行类型区分:用户类型,套餐类型,功能类型

在这里我们采用一种便于程序代码读取的格式:用户类型/套餐类型/电话/短息这样的格式

//我们在配置文件里写好这些属性之后,然后我们接着写一个管理这个文件的类,用于修改和获取这个类中的属性

面向对象的分析和设计:移动公司里面有两类客户,移动公司里的客户可以打电话,发短信,数据通信,还可以订购和退订套餐:移动公司每月要为其中的所有客户生成计费清单,还要模拟各种客户的行为,据此可以分析出如下的一些类和方法:

凭借基类的面向对象设计的经验,可以把计算电话,短信,数据费用的功能各封装成一个策略对象,这些策略对象内部根据当前的用户类别,当月使用的套餐和计费的公嫩个项目来计算费用。策略对象在计算费用时,要从Properties文件中读取相应的数据值,为此可以专门设计一个类来读取配置文件,策略对象调用该类的方法

设计一个总的策略对象来管理各个功能项目的策略对象以及VIP用户的月租费或基本费,所谓订购套餐,就是选用哪个策略对象。所以,订购某个功能套餐和退订某个功能套餐的方法应分配给这个总的策略对象,这个总的策略对象内部既要存储各个功能项的当前的套餐对应的策略对象,又要存储下月订购的套餐,还要在下个月时将订购的套餐设置为当前套餐,这个设置不一定是真的变量赋值操作,可以使通过日期比较的方式来达到,这需要设计一个辅助类把某个月和从该月开始订购 的功能套餐进行关联存储。

类图,之间的关系要搞清除

其中的方法都封装起来,方法与方法的相互调用,理解架构

 

---------------------- android培训java培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net/heima
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值