Skip to content

Instantly share code, notes, and snippets.

@gennad
Created March 2, 2011 18:36
Show Gist options
  • Save gennad/851436 to your computer and use it in GitHub Desktop.
Save gennad/851436 to your computer and use it in GitHub Desktop.
Factory method - GoF
class Product:
pass
class FordCar(Product):
pass
class ToyotaCar(Product):
pass
class Factory:
def factorymethod(self):
raise NotImplementedError()
class FordFactory(Factory):
def factorymethod(self):
return FordCar()
class ToyotaFactory(Factory):
def factorymethod(self):
return ToyotaCar()
factories = [FordFactory(), ToyotaFactory()]
for f in factories:
product = f.factorymethod()
print product
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment