Chain Constructors is another refactoring from the book Refactoring to Patterns, it helps remove duplication in constructor overloads. This should be a very familiar refactoring for most developers. Catch all constructors are produced, and hopefully minimized, that other constructors rely on either directly or indirectly.

Mechanics

Study the constructors in the class and find the two with the most shared code. Say I have two constructors to create lines as follows:

Avoid future mistakes when new code in one constructor isn’t copied to others.

Cons

Highly nested constructors might become confusing, try to keep it simple, if you find many levels of chaining, you may want to consider applying refactorings to or twoards Creation Method and/or Factory patterns to help reduce ambiguity