【发布时间】:2014-12-19 18:27:43
【问题描述】:
特别是在单元测试中,我们使用这种“设计模式”,我称之为“从类级别获取类”
frameworktest.py:
class FrameWorkHttpClient(object):
....
class FrameWorkTestCase(unittest.TestCase):
# Subclass can control the class which gets used in get_response()
HttpClient=FrameWorkHttpClient
def get_response(self, url):
client=self.HttpClient()
return client.get(url)
mytest.py:
class MyHttpClient(FrameWorkHttpClient):
....
class MyTestCase(FrameWorkTestCase):
HttpClient=MyHttpClient
def test_something(self):
response=self.get_response()
...
get_response() 方法从self 获取类,而不是通过导入它。这样子类可以修改类并使用不同的HttpClient。
这个(从类级别获取类)“设计模式”的名称是什么?
这是一种“控制反转”还是“依赖注入”的方式?
【问题讨论】:
标签: python inheritance design-patterns dependency-injection inversion-of-control