我在想這樣的問題......比方說,我們有一個類人:迭代器上的MySQL使用對象
class Person {
private $iPersonId;
private $sName;
private $sLastName;
private $rConn;
public function __construct($rConn, $iPersonId) {
$this->rConn = $rConn;
$this->iPersonId = $iPersonId;
}
public function load() {
// load name and last name using the $rConn object and $iPersonId
}
}
,現在我們要對許多人執行一些操作,所以我們寫一個新的類:
class People {
private $aPeople = array();
public function addPerson(Person $oPerson) {
// ...
}
public function loadPeople() {
// PROBLEM HERE //
}
}
現在有兩個問題:1。 人員和人民有裝載相同的接口(函數的load()),但如果我想通過$ aPeople的人重複,以然後加載它們的數據本會導致以下問題:
SELECT * FROM people WHERE id = 1
SELECT * FROM people WHERE id = 2
SELECT ......
.....
....
如果想要加載1000,那麼一些東西會去繁榮:)。
如何設計此代碼以在一個查詢中加載所有用戶? (IN)
- 我必須在我添加到People中的每個Person對象中繼續使用依賴注入。這違背了DRY規則,只是看起來不太好。
所以親愛的用戶,有什麼更好的方法來設計這個代碼?
什麼的'loadPeople()'的內容? – scones 2013-03-25 10:16:03
foreach($ aPeople as $ oPerson) – 2013-03-25 10:18:51
{$ oPerson-> load()} – 2013-03-25 10:19:31