Dependency inversion principle
The dependency inversion principle states that entities should depend on abstractions and not on concretions. That is, a high level module should not depend on a low level module, rather the abstraction. As per the definition found on Wikipedia:
"One should depend upon abstractions. Do not depend upon concretions."
This principle is important as it plays a major role in decoupling our software.
The following is an example of a class that violates the DIP:
class Mailer { // Implementation... } class NotifySubscriber { public function notify($emailTo) { $mailer = new Mailer(); $mailer->send('Thank you for...', $emailTo); } }
Here we can see a notify
method within the NotifySubscriber
class coding in a dependency towards ...
Get Modular Programming with PHP 7 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.