TypeScript is an object-oriented programming language and, as such, we can leverage decades of knowledge on object-oriented architecture. In this chapter, we'll explore some of the most useful object-oriented design patterns and learn how to apply them in an Angular way.
Angular is, by itself, an object-oriented framework, and it forces you to do most of your development in certain ways. For example, you are required to have components, services, pipes, and so on. Forcing these building blocks upon you contributes to building a good architecture, very much like what the Zend framework does for PHP, or Ruby on Rails for Ruby. Of course, frameworks are there to make your life easier and speed up development time.
While the Angular way of designing things is way above average, we can always do better. I do not claim that what I present in this chapter is the...