gpt4 book ai didi

php - 类方法从使用更高类的方法/属性的类返回对象。如何?

转载 作者:行者123 更新时间:2023-12-04 06:27:23 25 4
gpt4 key购买 nike

我试图在我的代码中实现一个简单的行为,但我想不出一种体面的方式来做到这一点。看看我正在尝试做的事情:

$db = new Database('mydb');
$db->createTable('sample');

$myTable = $db->getTable('test');
$myTable->insert($data);
$myTable->insert($data);
$myTable->edit('2', $data2);
$myTable->remove('1');

getTable 是 的一个方法数据库 类,返回 的对象表类(class)。 类具有特定于表操作的方法,例如插入、编辑和删除。 数据库 类有重要的方法 应该可以使用,比如exec和query。它还应该能够从 访问属性。数据库 ,例如 $this->pdo。

应该 延长 数据库 或者应该 数据库 有静态方法吗? 使用 中的几种方法数据库 .有没有我可以用来实现这个的设计模式?一个工厂?

最佳答案

工厂在这里没有真正意义,因为您没有创建 n相同基类(或接口(interface))的具体实现。

我可能最终会做这样的事情(请注意,这可能不会真正运行,提供一个概念而不是实际实现,因为它不在我的脑海中):

class Database
{
private $name;
public __construct($name)
{
$this->name = $name;
}

public function createTable($name)
{
$t = new Table($name, $this);
// sql stuff here
return $t;
}

public function exec($sql)
{
// table now has access to this due to the set reference
}
}

class Table
{
private $db;
public function __construct($name, $db)
{
$this->db = $db;
}
}

关于php - 类方法从使用更高类的方法/属性的类返回对象。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875101/

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