Template Method パターンの履歴

クラスに専用のコードを書いて、親クラスはそれを呼ぶ。親は子がやってることは知らなくても良い!

継承の利点を最大限に使ったデザインパターン

継承しなければならないので、ある程度密結合にはなる。継承する必然性があるかどうかを考えてから取り入れる。

PHP

abstract class Person{
    function hoge(){
        $this->someProc();
        $this->specialCase();
        $this->someProc();
    }
    abstract function specialCase();
}
class Akkun extends Person{
    function specialCase(){
        echo "this is akkun class";
    }
}
class Hirokun extends Person{
    function specialCase(){
        echo "this is hirokun class";
    }
}