依赖注入
当我们实现一个类时,有时候需要在类的构造函数中注入其它类的实例作为依赖。使用依赖注入可以使得代码更加灵活、可测试和可维护。
下面是一个简单的基于 Python 的依赖注入示例:
class EmailSender:
def send_email(self, to_addr: str, subject: str, body: str):
print(f"Sending email to {to_addr}\nSubject: {subject}\nBody: {body}")
class NewsletterManager:
def __init__(self, email_sender: EmailSender):
self.email_sender = email_sender
def send_newsletter(self, recipients: List[str], subject: str, body: str):
for recipient in recipients:
self.email_sender.send_email(recipient, subject, body)
if __name__ == '__main__':
email_sender = EmailSender()
newsletter_manager = NewsletterManager(email_sender)
recipients = ['alice@example.com', 'bob@example.com']
newsletter_manager.send_newsletter(recipients, 'Newsletter', 'Hello from our company!')
在这个示例中,NewsletterManager 类依赖于 EmailSender 类,因为它需要在发送新闻通讯时调用 EmailSender.send_email() 方法。
在 NewsletterManager 的构造函数中,我们注入了一个 EmailSender 实例,并将其存储为 self.email_sender 属性。
然后,我们可以使用 NewsletterManager 的 send_newsletter() 方法向给定的收件人列表发送邮件。
在主程序中,首先创建一个 EmailSender 实例,然后将其传递给 NewsletterManager 构造函数创建一个 NewsletterManager 实例。
最后,我们调用 NewsletterManager 的 send_newsletter() 方法来发送新闻通讯邮件。
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!