gpt4 book ai didi

python - 设计模式名称 : get class from class level

转载 作者:太空狗 更新时间:2023-10-29 21:31:26 24 4
gpt4 key购买 nike

特别是在单元测试中,我们使用这种“设计模式”,我称之为“从类级别获取类”

框架测试.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)

我的测试.py:

class MyHttpClient(FrameWorkHttpClient):
....

class MyTestCase(FrameWorkTestCase):
HttpClient=MyHttpClient

def test_something(self):
response=self.get_response()
...

get_response() 方法从 self 获取类,而不是通过导入它。这样子类就可以修改类并使用不同的 HttpClient

这个(从类级别获取类)“设计模式”的名称是什么?

这是一种“控制反转”还是“依赖注入(inject)”的方式?

最佳答案

您的代码与 Factory method pattern 非常相似.唯一的区别是您的变体使用工厂类变量而不是工厂方法。

关于python - 设计模式名称 : get class from class level,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27571848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com