我已经构建了一个简单的银行应用程序,它能够执行常规操作; 存款,提款等
我的控制器方法执行这些操作并挽救帐户或其他实体引发的异常.
以下是控制器代码中使用的一些方法:
def open(type, with:)
account = create type, (holders.find with)
add account
init_yearly_interest_for account
boundary.render AccountSuccessMessage.new(account)
rescue ItemExistError => message
boundary.render message
end
def deposit(amount, into:)
account = find into
account.deposit amount
boundary.render DepositSuccessMessage.new(amount)
rescue ItemExistError => message
boundary.render message
end
def withdraw(amount, from:)
account = find from
init_limit_reset_for account unless account.breached?
account.withdraw amount
boundary.render WithdrawSuccessMessage.new(amount)
rescue ItemExistError, OverLimit, InsufficientFunds => message
boundary.render message
end
def get_balance_of(id)
account = find id
boundary.render BalanceMessage.new(account)
rescue ItemExistError => message …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Ruby为银行管理系统编写程序.该系统的一个功能是它可以创建一个新帐户,帐户可以是六种类型之一.
我的控制器中有以下方法来满足此功能:
def create_account(type, holder)
case type
when :current then CurrentAccount.new(holder, @account_number)
when :savings then SavingsAccount.new(holder, @account_number)
when :business then BusinessAccount.new(holder, @account_number)
when :ir then IRAccount.new(holder, @account_number)
when :smb then SMBAccount.new(holder, @account_number)
when :student then StudentAccount.new(holder, @account_number)
end
end
Run Code Online (Sandbox Code Playgroud)
这些账户中的每一个都从基础账户继承,最终将包含个人属性,例如利率,透支等.
虽然这是功能性的,并提供了所需的结果,但感觉有点冗长.但是我想不出任何明显的重构方法.
欢迎任何建议......