标签:重要 角色 com 抽象类 算法设计 操作 抽象 function 执行
在父类中定义处理流程的框架,在子类中实现具体处理的模式就称为模板方法模式
抽象类(AbstractClass)
抽象类不仅负责实现模板方法,还负责声明在模板方法中所使用到的抽象方法。
具体类(子类)
该角色负责具体实现抽象类角色中定义的抽象方法。这里实现的方法将会在抽象类角色的模板方法中被调用。
# 抽象类 AbstractClass.php
<?php
namespace App\Test;
abstract class AbstractClass
{
/**
* 模板方法,定义执行的流程
*/
final public function main()
{
$this->operate1();
$this->operate2();
}
/**
* 操作1
* @return mixed
*/
abstract protected function operate1();
/**
* 操作2
* @return mixed
*/
abstract protected function operate2();
}
# 具体类1 ConcreteClassOne.php
<?php
namespace App\Test;
class ConcreteClassOne extends AbstractClass
{
/**
* 操作1
* @return mixed|void
*/
protected function operate1()
{
echo 'ConcreteClassOne: this is operate1';
}
/**
* 操作2
* @return mixed|void
*/
protected function operate2()
{
echo "ConcreteClassOne: this is operate2";
}
}
# 具体类2 ConcreteClassTwo
<?php
namespace App\Test;
class ConcreteClassTwo extends AbstractClass
{
/**
* 操作1
* @return mixed|void
*/
protected function operate1()
{
echo 'ConcreteClassTwo: this is operate1';
}
/**
* 操作2
* @return mixed|void
*/
protected function operate2()
{
echo 'ConcreteClassTwo: this is operate2';
}
}
原文地址:https://segmentfault.com/a/1190000016164272
标签:重要 角色 com 抽象类 算法设计 操作 抽象 function 执行
原文地址:https://www.cnblogs.com/lalalagq/p/9973692.html