55
Inline Class
Goal
A class with too few responsibilities to deserve its own file folds into a class it collaborates with most.
Before the refactoring
class TrackingInformation {
shippingCompany;
trackingNumber;
display() { return `${this.shippingCompany}: ${this.trackingNumber}`; }
}
class Shipment { tracking; }After the refactoringclass Shipment {
shippingCompany;
trackingNumber;
display() { return `${this.shippingCompany}: ${this.trackingNumber}`; }
}Savings
Fewer files, fewer constructors, shorter call paths; the absorbing class's coherence improves when it gains the methods it was already orchestrating.
Note
If the absorbing class was already large, inlining piles more onto it — fold in only when the absorber stays under its complexity budget afterward.