日期:2014-05-20  浏览次数:20676 次

【关于银行系统设计问题】
请教诸位这么一个问题,一个假象的银行帐户管理系统中: 

* 帐户(Account)分为普通帐户,VIP帐户和信用卡帐户三种. 
   
  当普通账户连续一年内账户存款保持10万以上,则填一份申请单即可申请为VIP账户。

* 每个帐户都可以执行取钱,存钱,注销三种操作 

* 关于取钱操作的细节: 
  普通帐户每次取钱限额为1000元,不能透支 
  VIP帐户每次取钱限额为3000元,不能透支 
  信用卡帐户每次取钱限额为500元,可以透支 

* 另外每个帐户有四种可能的状态:新建、正常、冻结、挂失 

* 帐号处于不同状态时对于上面提到的三种操作会产生影响: 

  新建状态时不能执行注销操作

  挂失状态时不能执行存钱、取钱操作 

  冻结状态时不能执行注销操作,如果是普通账户或者信用卡帐户则不能进行取钱
  如果是VIP账户,可以取钱但是必须先开一份保证书,且金额每次不得超过2000, 且冻结后一个月内取钱次数不能超过5次。

------解决方案--------------------
传说中的伸手党?
你先设计一个基类,实现所有账户类型的共同字段和方法
然后再通过继承或实现,派生出新的特殊账户,再生成新的字段和方法
最后放在操作里面
------解决方案--------------------
把通用的行为抽象出来,然后根据具体,创建接口或者抽象类(或则用什么模式之类的),先多想下。