Reusable services leveraging OOP concepts
OOP is an imperative programming style compared to the reactive programming style that RxJS enables. Classes form the bedrock of OOP, whereas observables do the same for reactive programming using RxJS.
I encourage you to become familiar with OOP terminology. Please see the Further reading section for some useful resources. You should become familiar with:
- Classes versus objects
- Composition (interfaces)
- Encapsulation (private, protected, and public properties, and property getters and setters)
- Polymorphism (inheritance, abstract classes, and method overriding)
As you know, Angular uses OOP patterns to implement components and services. For example, interfaces implement life cycle hooks such as OnInit
. We aim to design a flexible auth service that can implement multiple auth providers. In Chapter 6, Implementing Role-Based Navigation, we will implement an in-memory provider and a Google Firebase provider...