title: Java Currency Converter adhering to OO (Object Oriented) principles
body: <p>A command line currency converter application that prompts for a user input of
  source currency, source currency code and target currency code e.g. </p>
  
  <pre><code>C:\workspace&gt; java CurrencyConverter 100.50 EUR GBP
  </code></pre>
  
  <p>The application returns the value of the source amount converted to the target currency
  e.g. for the above input it returns</p>
  
  <pre><code>100.50 EUR = 86.33 GBP
  </code></pre>
  
  <p>After displaying the converted value the program exits.</p>
  
  <p>The available exchange rates (GBP based) are in a comma separated value file. Format of this file is
  COUNTRY,NAME,CODE,RATE 
  e.g.</p>
  
  <pre><code>United Arab Emirates, Dirhams, AED, 7.2104
  Australia, Dollars, AUD, 1.51239
  Bosnia and Herzegovina, Convertible Marka, BAM, 2.60565
  Bulgaria, Leva, BGN, 2.60948
  </code></pre>
  
  <p>I have a single java file which does the things but how can I convert it into well designed, extensible and maintainable form that adheres to good OO principals?</p>
  
  <p>Should I consider any design pattern, if yes, what different types of objects/interfaces required and their relationships with each other?</p>