Use the Extension Object pattern in Java when objects need optional capabilities without forcing every capability into the main type hierarchy.
Extension Object is a less common but useful structural pattern for capability-based extension. Instead of putting every optional feature on the main class, the object can expose or discover extension objects that provide extra behavior.
In Java, this can help when:
It is more specialized than Decorator and usually more niche.