title: How to implement a cheapest Hotel Finder using design patterns?
body: <p>6 months ago, I gave a ThoughtWorks interview and was out in coding round.
  I want to improve on my OO-design skills</p>
  
  <p>I read Head First Design patterns to start with and got a basic idea of common design patterns around.
  and While I am now working on iOS I am learning Objective C. and have come across various design pattern being applied via a dynamic language and getting an understanding of things.</p>
  
  <p>However I still want to be sure about what would be appropriate choice of pattern used in this sample problem.</p>
  
  <p>and may be some tips on how to improve such skills.</p>
  
  <p>Here is the problem.</p>
  
  <p>There is a Hotel chain. there are three branches LakeWood,Rosewood and xyzWood.
  and all of them 4 types of rates depending on combination whether the day is a weekday,weekend and the customer is reward or regular.</p>
  
  <p>user input is a series of dates  on which he wants to stay at one of the Hotels and his type.
  output should be the best hotel depending upon which is the cheapest overall for the stay.
  in case of a tie there will be rating for each hotel, and one with more rating decides the tie.
  and program should be flexible so that new algorithm can be used to find best hotel and also if anything changes in the structure of Hotel or more Hotels are added.</p>
  
  <p>I came us with following classes in terms of java.</p>
  
  <ul>
  <li>Hotel : having ratings,name, and 4 types of rates</li>
  <li>HotelFinder Interface which has a finder method which returns Hotel.</li>
  <li>CheapestHotelFinder class that implements this interface and has attributes like Customer or Customer type which could be an enum  [ not sure ]and a list of dates .</li>
  <li>Probably, A Customer class where customer details are dates n type and this customer is given to the finder.</li>
  <li>Is there a way that comparable interface can be used for Hotel class?</li>
  <li>and a Booking System Singleton class that would do all the work for us.</li>
  </ul>
  
  <p>I am stuck here. I hope if anyone can help me out with the design. </p>