========================================================================================
- Empty Skeleton Class Files
- Add proper class specifications (class, abstract, interface)
- BankComponent
- ID
- Bank
- BankUser
- Customer
- Manager
- Account
- CheckingAccount
- SavingsAccount
- SecuritiesAccount
- LoanAccount
- Currency
- Dollar
- Euro
- Yen
- Transaction
- Deposit
- Withdrawl
- Transfer
- Loan
- Stock
- Stock Market
- Report
========================================================================================
- Singleton Pattern - design so that there is only 1 bank, 1 stock market, and 1 bank manager created
- Factory Pattern - create an AccountFactory class with a getAccount() method that will return an Account object (can be checking, savings, securities, or loan)
- Facade Pattern - design the interface for the customer so that all the methods and other complex code is not visible
- Observer Pattern - have the customers observe something (the Manager or the Stock Market could be the subject) so that they are notified of changes to their account or changes in the market