// @topic S-0314-14-01-20 Java Memento Design pattern // @brief class CheckingAccount package memento; public class CheckingAccount { //--------------------------------- // data attributes //--------------------------------- private double balance; //--------------------------------- // constructors //--------------------------------- public CheckingAccount( double balance ) { this.balance = balance; } //--------------------------------- // operations //--------------------------------- public AccountMemento createMemento() { return new AccountMemento( balance ); } public void restoreMemento( AccountMemento memento ) { balance = memento.getBalance(); } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } public boolean withdraw( double amount ) { if ( balance > amount ) { balance -= amount; return true; } else { // notify the user about insufficient funds: return false; } } }//class CheckingAccount