有几个类的很相似,只是其方法对数据处理的逻辑和最后数据输出的结果有些差别,可以通过这样的思路实现吗?
1.思路一,通过修改抽象函数逻辑实现返回值不同
abstract class parents{ protected $data = array(); public function get_content( $this->data = sql_get_content(); return data_function($this->data); ); protected sql_get_content(){ //DB功能 } abstract protected function data_function(); }
class child extends parents{ abstract protected function data_function($data){ //不同类对$data的处理逻辑不一样,使得get_content()返回的结果不一样 }; }
2.思路二,继承父类的函数,不同子类在后面加不同的逻辑处理,最后返回不同结果。很想知道这个方法能不能行得通
abstract class parents{ protected $data = array(); public $result; public function get_content( $this->data = sql_get_content(); ); protected sql_get_content(){ //DB功能 } }
class child extends parents{ public function get_content( parent::get_content(); //不同类对$data的处理逻辑不一样,使得get_content()返回的结果不一样 return $this->result; ); }
思君满月