SOLID – the dependency inversion principle

The dependency inversion (DI) principle states, Depend upon abstractions. Do not depend upon concretions. In the LSP, we implemented a class named FavouritesController. In the example, it was possible to replace an implementation of PersistanceServiceInterface with another without having to perform any additional change to FavouritesController.

We followed the DI principle, as FavouritesController has a dependency upon PersistanceServiceInterface (abstraction):

The preceding can be implemented as follows:

class FavouritesController { private _persistanceService: PersistanceServiceInterface; public ...

Get Learning TypeScript 2.x - Second Edition 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.