Advertisement
Guest User

Untitled

a guest
Jan 19th, 2013
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Business and Data Objects
  2. import functools
  3. class Foo:
  4.     def __init__(self,create_bar):
  5.         self.create_bar = create_bar
  6.     def do_stuff(self,times):
  7.         for _ in range(times):
  8.             bar = self.create_bar()
  9.             print(bar)
  10.  
  11. class Bar:
  12.     def __init__(self,prefix):
  13.         self.prefix = prefix
  14.     def __str__(self):
  15.         return str(self.prefix)+"Hello"
  16.        
  17. class Prefix:
  18.     def __init__(self,name):
  19.         self.name = name
  20.         self.count = 0
  21.     def __str__(self):
  22.         self.count +=1
  23.         return self.name+" "+str(self.count)+": "
  24.    
  25. # Wiring up dependencies
  26. def create_bar(prefix):
  27.     return Bar(prefix)
  28.  
  29.  
  30. def create_prefix(name):
  31.     return Prefix(name)
  32.  
  33. class BarCreator:
  34.     def __init__(self, name):
  35.         self.prefix = create_prefix(name)
  36.     def __call__(self):
  37.         return create_bar(self.prefix)
  38.  
  39. def create_foo(name):
  40.     return Foo(BarCreator(name))
  41.      
  42. #def create_foo(name):
  43. #    return Foo(functools.partial(create_bar,create_prefix(name)))
  44.  
  45. # Starting the application
  46. f1 = create_foo("foo1")
  47. f2 = create_foo("foo2")
  48. f1.do_stuff(3)
  49. f2.do_stuff(2)
  50. f1.do_stuff(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement