「GUIの設計パターン」のコメントで指摘があったので補足しておきます。 Javaのコンストラクタは思った以上に複雑で、希に困った状況を引き起こします。その1つの例が「コンストラクタ内でthis参照リーク」問題です。次のようなコードがあった時、どうなるか予想できるでしょうか? class Bar { Foo foo = null; Bar() { } } public class Foo { Bar bar = null; final String finalObj; Foo(Bar bar) { bar.foo = this; if (true) throw new RuntimeException(); this.finalObj = "OK"; } public static void main(String[] args) { Bar bar = new Bar(); try { F