Soprattutto in Unittests usiamo questo "design pattern" che io chiamo "get classe da livello di classe"Nome del Design Pattern: ottenere classe da livello di classe
framworktest.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()
...
il metodo get_response()
ottiene la classe da self
non importando essa. In questo modo una sottoclasse può modificare la classe e utilizzare un diverso HttpClient
.
Qual è il nome di questo (ottenere classe da livello di classe) "modello di progettazione"?
È questo un modo di "inversione del controllo" o "iniezione di dipendenza"?
grazie. Sì, lo schema del metodo di produzione è molto simile. – guettli