Chapter 9

Messy Object Creation

Identification

At times, even after we have tried to make the various parts of our code as small and modular as we can, there are cases when we still have to create some complex objects.

In a hypothetical software project that's being used in the airline industry, you might come across code like this:

const plane = new Airplane();

plane.type = PlaneType.Passenger;

plane.engine = new PassengerPlaneEngine();

plane.hasFirstClass = true;

plane.hasBathroom = false;

plane.numberOfSeats = 100;

// etc.

As a smaller sample of a larger piece of code, this might not look too bad.

What you'll probably find is that this kind of code will be copied and pasted into other places. So, whenever we need to create a passenger ...

Get Refactoring TypeScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.