gpt4 book ai didi

php - 我如何从父类的方法中动态更改对象的类?

转载 作者:可可西里 更新时间:2023-10-31 23:12:05 24 4
gpt4 key购买 nike

我有一个名为 Report 的类。我有几个类继承自报告、ClientReport、ClientVisitReport...

class Report {
...
public function load($id) {
...
}
}

class ClientReport extends Report {
...
public function load($id) {
parent::load($id);
...
}
}

class ClientVisitReport extends Report {
...
public function load($id) {
parent::load($id);
...
}
}

我希望能够从我提供给加载方法的 id 中调用正确的构造函数。每个 id 都有自己的报告类别。

基本上我是在问我该怎么做:

$reportObject = new Report(); // reportObject is a Report
$reportObject->load(15678); // report 15678 is a ClientReport, $reportObject is now a ClientReport

我该怎么做?我的设计可能有误,有没有更好的方法来做我想做的事?

最佳答案

您可能想查看 AbstractFactory pattern .其目的之一是

Provide an interface for creating families of related or dependent objects without specifying their concrete classes.

链接页面底部有 PHP 示例。

关于php - 我如何从父类的方法中动态更改对象的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2674415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com