title: Determine the best design pattern for This system
body: <p>I want to design a Lights hardware controller that do the following:</p>
  
  <ol>
  <li>Have commands that control the lights for  the place like turn on, turn off, turn on all lights, turn off all lights.</li>
  <li>Other operation may be defined in the future such as adding affects or like these operation(which pattern tat help me to add new operation to existing one without polluting the existing system).</li>
  <li>The controller should support multiple kinds of lights(is adapter a good option here?? any other options??) .</li>
  <li>The controller have a computer UI in addition to manual control(which is the best pattern for providing interface between the controller and the software UI).</li>
  </ol>
  
  <p>I want to use some design patterns here like (Iterator, Composite, Observer, Facade, Factory, Builder, Template Method, Decorator, Command, Visitor, Proxy, and/or Adapter). I want to know which patterns are best suitable for each and how I can apply them here? And if there if is any example similar to this one?</p>