Object Calisthenics

##Exercise: Bank account

Think of your personal bank account experience When in doubt, go for the simplest solution

Requirements

Deposit and Withdrawal

Transfer

Account statement (date, amount, balance)

Statement printing

Statement filters (just deposits, withdrawal, date)

Rules

  1. One level of indentation per method
  2. Don’t use the ELSE keyword
  3. Wrap all primitives and Strings
  4. First class collections
  5. One dot per line
  6. Don’t abbreviate
  7. Keep all entities small (50 lines)
  8. No classes with more than two instance variables
  9. No getters/setters/properties