Chris Colbert wrote:
I dont think so, because that would require logic outside of the
controller class to determine which controller to instantiate.

My whole purpose for Controller is to encapsulate this logic.

So, if the data should be simulated, then i just need to pass
-simulate True as a command line argument, and the controller takes
care of it...

On Mon, Oct 5, 2009 at 3:44 PM, Richard Brodie <r.bro...@rl.ac.uk> wrote:
"Chris Colbert" <sccolb...@gmail.com> wrote in message
news:mailman.868.1254748945.2807.python-l...@python.org...

I am trying to abstract this machinery in a single class called
Controller which I want to inherit from either SimController or
RealController based on whether a module level flag SIMULATION is set
to True or False.
At first sight, that seems kind of odd. Wouldn't it be simpler to have
SimController and RealController inherit from Controller?


--
http://mail.python.org/mailman/listinfo/python-list

Please don't top post.

Yet Richard's design is the way to go.

controller.py:

class Controller:
   def getInstance(simulation):
      if simulation:
         return SimController()
      else:
         return RealController()
   getInstance = staticmethod(getInstance)

class RealController(Controller):
   pass

class SimController(Controller):
   pass

myController = Controller.getInstance(simulation=True)


I personnally would define getInstance as a module function, but because you prefer to put all the logic in Controller... It doesn't really matter in the end.

Cheers,

Jean-Michel
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to