Chapter 3. Creational Patterns
In the last chapter, we took a long look at how to fashion a class. In this chapter, we'll look at how to create instances of classes. On the surface it seems like a simple concern, but how we create instances of a class can be of great importance.
We take great pains in creating our code such that it can be as decoupled as much aspossible. Ensuring that classes have minimal dependence on other classes is the key to building a system that can change fluently with the changing needs of those using the software. Allowing classes to be too closely related means that changes ripple through them.
One ripple isn't a huge problem but as you throw more and more changes into the mix, the ripples add up and create interference patterns. Soon the once placid surface is an unrecognizable mess of additive and destructive nodes. This problem also occurs in our applications: the changes magnify and interact in unexpected ways. One situation in which we...