Advertisement
Guest User

manual dependency injection - maybe done better

a guest
Jan 19th, 2013
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.94 KB | None | 0 0
  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.      
  34. def create_foo(name):
  35.     return Foo(functools.partial(create_bar,create_prefix(name)))
  36.  
  37. # Starting the application
  38. f1 = create_foo("foo1")
  39. f2 = create_foo("foo2")
  40. f1.do_stuff(3)
  41. f2.do_stuff(2)
  42. f1.do_stuff(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement