【发布时间】:2013-03-09 15:14:31
【问题描述】:
假设我有一个名为 Books 的课程。在该类中,我有一个方法可以获取一本书或几本书的标题、价格和类别。所以是这样的:
public function fetchRows () {
$sql = $con->prepare("SELECT Title, Price, Category FROM Books");
$sql->execute();
return $sql->fetchAll();
}
一切都很好,但是假设我现在想获取另一行,order 结果和limit 返回的行数。为此编写另一种方法会起作用,但这会导致方法数量荒谬,而且这很混乱并且不符合 DRY 规则。我可以使用参数来自定义准备语句,然后我可能最终会在一个参数中编写整个查询,而且这似乎也不可靠和干净。
我的问题是如何编写/构造方法/类以适应最终用户想要获得的内容?
很抱歉,这真的不是针对特定问题的问题。我已经阅读了一些关于我的问题的材料,但是我很难将这种模式缠绕在我的脑海中,我希望有人可以提供一个解释或示例来帮助我理解这一点。
【问题讨论】:
-
是的,很多时候你会有一个单独的抽象来处理数据库交互。所以完全是另一个类,然后您可以将所有参数传递给它,并使用类似 API 的简单接口处理所有数据库请求。
标签: php class design-patterns methods