Dans le cas de python, la dépendance peut être facilement inversée si elle est bonne pour chaque module.
person.py
ne dépend pas de l'implémentation de ʻAbstractPerson`.
person.py
class AbstractPerson:
def say(self):
raise NotImplementedError()
def talk_each():
person_a = AbstractPerson()
person_b = AbstractPerson()
print(person_a.say())
print(person_b.say())
Pour injecter une dépendance dans le module person
, vous pouvez écrire:
main.py
import person
class JapanesePerson:
def say(self):
return "Bonjour"
class EnglishPerson:
def say(self):
return "Hi"
person.AbstractPerson = JapanesePerson
person.talk_each()
#Bonjour
#Bonjour
person.AbstractPerson = EnglishPerson
person.talk_each()
# Hi
# Hi
Cela ressemble vraiment à python
.
Recommended Posts