This chapter covers
In chapter 8, we talked about how to layer our application. During that discussion, we brought up the notion of using interfaces to represent the contracts we define between layers. In this chapter, we’ll expand on this idea and outline ways to manage the interdependencies between those layers.
As always, we’ll tie this discussion back to brownfield applications. But first, let’s look at some of the issues inherent in highly coupled code.
Problems arising from dependencies can be subtle. They don’t usually appear ...