私の先生は本当に良い人で、彼のポイントを理解する傾向がありますが、これは私の頭を悩ませています. 彼は Template Method を 2 つのバリエーションで説明しています。
- 統一: 標準のバリアント。それ以外の場合は修正されたアルゴリズムのバリアント部分を定義するいくつかの抽象メソッドを持つ抽象クラスで構成されます。
- 分離: クラスに templateMethod() が含まれ、インターフェイスへの委譲を使用してアルゴリズムの部分を変更する彼自身のバリアント (と思いますか?) は、Strategy パターンとまったく同じように見えます。
彼のポイントが何であるか、そして「分離」バリアントが戦略パターンとどのように異なるかを誰でも見ることができますか?
彼の本 (まだ出版されていません) から 2 つのパターンを含む画像を添付しました。