我倒是抽象甚至進一步創建得到公衆的方法。你想獲得的數據,不包含一般的SQL語句。
所以也許retrieveAccounts
方法。這需要賬目的陣列,不容忽視。
在裏面你可以添加忽略帳號的方法。
對不起,澄清,讓您的當前設置不一定能提供面向對象的所有優點(不是我下面的例子會那樣做,但希望它會幫助你的方向)
也許你的應用程序可以從受益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中完成,你的程序根本不需要改變。
如果preparedQuery不是靜態的,你應該在構造函數中實例化它。 – allaire