我有一个搜索类,用于从两个不同的来源获取结果并将它们组合在一起。Search 类是父类,有两个子类 A 和 B,它们扩展了 Search。
在 Search 类中,我有一个名为 fetch() 的方法,它实例化两个子对象以获取它们的结果。它看起来像这样:
public function fetch(){
$a = new A($this);
$a_results = $a->fetch();
$b = new B($this);
$b_results = $b->fetch();
// code to combine the results here
}
A 类和 B 类的构造函数都是这样的:
class A extends Search
{
public function __construct(Search $search){
parent::__construct($search->category, $search->offset, $search->keywords...);
}
感觉就像我做错了什么,因为我将父对象传递给子对象,然后使用完全相同的数据创建另一个父对象。有没有更好的方法来设置它?
我之所以这样设置,是因为我的应用程序的某些部分需要直接访问 A 类和 B 类,而不是通过父 Search 类。