Chapter 8: Replacing objects initialization with factory methods