复制代码代码如下:
/**
* テンプレート パターン
*
* 操作でアルゴリズムのスケルトンを定義し、一部のステップをサブクラスに延期します。これにより、サブクラスはアルゴリズムのステップの構造を変更せずにアルゴリズムの特定の側面を定義できます。 🎜>*
*/
抽象クラス TemplateBase
{
public function Method1()
{
echo "abstract Method1
";
}
public function Method2()
{
echo "abstract Method2
";
}
public function Method3()
{
echo "abstract Method3
";
}
パブリック関数 doSomeThing()
{
$this->Method1();
$this->Method2();
$this->Method3();
}
}
class TemplateObject extends TemplateBase
{
}
class TemplateObject1 extends TemplateBase
{
public function Method3()
{
echo "TemplateObject1 Method3
";
}
}
class TemplateObject2 extends TemplateBase
{
public function Method2()
{
echo "TemplateObject2 Method2
";
}
}
// 例化
$objTemplate = new TemplateObject();
$objTemplate1 = 新しい TemplateObject1();
$objTemplate2 = 新しい TemplateObject2();
$objTemplate->doSomeThing();
$objTemplate1->doSomeThing();
$objTemplate2->doSomeThing();