加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:03:09 所属栏目:PHP教程 来源:网络整理
导读:我有一个名为Report的课程. 我有几个继承自report,ClientReport,ClientVisitReport的类… class Report { ... public function load($id) { ... }}class ClientReport extends Report { ... public function load($id) { parent::load($id); ... }}class Cli
我有一个名为Report的课程.
我有几个继承自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);
        ...
    }
}

我希望能够从我提供给load方法的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示例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读