閉鎖/解放原則を満たす子クラスファクトリハンドラを使うように書き換えた