Morgan's Flowers
Morgan owns a flower shop, and it is important that they take delivery of new stock each day so that they can continue to supply their customers.
Without Dependency Injection
Ashley pulls into the loading dock in a truck filled with fresh flowers. Morgan accepts the delivery and says, "Thanks, Ashley! I will see you tomorrow!"
Morgan has decided to include Ashley as a valuable part of her system. What happens if Ashley doesn't deliver the flowers tomorrow? What if Ashley changes jobs, gets fired, or just isn't as reliable as Morgan expected? Because Ashley is built into Morgan's business system, Morgan is stuck. To make a change for their business, they are going to have to rebuild the entire supply chain again, interview other drivers, change delivery methods, adjust schedules, etc. Do you see the problem here?
With Dependency Injection
Ashley pulls into the loading dock in a truck filled with fresh flowers. Morgan accepts the delivery and says, "Thanks!" Morgan doesn't know Ashley, and they don't care if Ashley is driving the truck tomorrow. Morgan is only interested in taking delivery of the flowers, not who delivers them. In fact, if Morgan is dissatisfied with the delivery service, they can order the same flowers from a new delivery service.
Did you find this analogy helpful?
I'd like to write a series of posts like this one that I can refer back to when teaching. There is no code included in this example. Is that an issue? Is there a topic you'd like to tackle in this manner? Let me know!
Top comments (2)
I enjoy this example, for it is something relatable, and easy for me to understand. Thank you.
Actually, I have more questions, is there a way to get in touch with you?