 <blockquote> <p>Is it possible in Z's constructor to put Z at the end of X's list</p> </blockquote> <p>Yes, if Z has access to X's list.</p> <blockquote> <p>Which way is better?</p> </blockquote> <p>This depends on the semantics. Is the list something closely related with Z's responsibilities or more with Y's?</p>