Reader

Dependency injection is a mechanism that defines how parts of your program should access other parts of the same program or external resources.

Let's consider a scenario where dependency injection becomes relevant. For example, consider you are writing an application with a database for a bank. The application will include methods for reading and writing the objects of your business domain into the database. For example, you may have a method to create a new user and a method to create a new account for them. These methods depend on the connection to the database. One way to inject this dependency is to pass the database connection object into the methods as arguments:

def createUser(u: User, c: Connection): Int = ???def createAccount(a: ...

Get Mastering Functional Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.