As you build applications using the patterns we learned in the previous videos, you begin to see some common side effects.

For instance: the Strategy, Adapter, Mediator and Bridge Patterns lead you to think a little bit more about better ways to manage dependencies between classes. You also begin to create rules and reasons why code should even exist in the first place.

Obviously, this is not a small topic. In this chapter we'll discover the key principles you should understand, who came up with them, and why. These concepts include Coupling, Cohesion, Tell Don't Ask, YAGNI, and SOLID.

The Code

You can find the code for each of the demos up on GitHub.