Sto provando il pattern di Iniezione di dipendenza in alcune nuove classi, più specificamente in un Sistema di Transazioni e sono incappato in un dilemma. Ho una classe Person con un metodo create_new_transaction e una classe Transaction per rappresentare ogni mia transazione.
Come il pattern dice che inietto la transazione di classe nel costruttore. Ma volevo anche iniettare gli oggetti originator e receiver nella classe Transaction in modo da poter accedere al loro nome pubblico e ai parametri dell'account. Sto danneggiando il design implementandolo? Questo sta creando un alto accoppiamento tra queste due classi?
class Transaction(object):
def __init__(self, amount, from_person, to_person):
self.from = from_person
self.to = to_person
class Person(object):
def __init__(self, name, transaction=Transaction):
self._transaction = transaction
self.name = name
def create_new_transaction(self, amount, destiny):
return self._transaction(amount, from_person=self, to_person=destiny)