我会进一步抽象它。创建获取您尝试获取的数据的公共方法,而不是包含一般 sql 语句的公共方法。
所以也许是一种retrieveAccounts
方法。这需要忽略一系列帐户。
在该方法中,您可以添加忽略的帐户。
抱歉,澄清一下,您当前的设置不一定提供 OOP 的所有优点(我下面的示例也没有,但希望它可以帮助您找到方向)
也许您的应用程序可以受益于AccountManager
class AccountManager {
public $retrieveAccounts($startDate, $endDate, $ignoredAccounts = array()) {
return "SELECT COUNT(?) FROM ? WHERE removed != 1 AND accountid NOT IN $ignoreaccounts AND ? BETWEEN $dateAfter AND $dateBefore";
}
$am = new AccountManager();
$accounts = $am->retrieveAccounts($startDate, $endDate);
也许您的 AccountManager 类也应该有一个addAcount
方法?我不知道。我相信最好的做法是考虑到你的课程有一个“消费者”,即使那个人是你。消费者不需要知道您是如何获取帐户信息的。他们只需要能够做到。就像我说的那样,这也不一定是这样做的方法,而是更强大的抽象。
因此,根据我上面的建议,如果由于某种原因您想从文件、postgres 或 mongodb 中提取帐号,该怎么办。您可以使用此类构建一个程序,如果您需要更改从哪里获取帐户,请在 AccountManager 中进行,并且您的程序根本不需要更改。