テンプレートとストラテジーパターンをうまく使う