因此,我認爲打印對象列表的常用方法是擁有一些Collection類或返回要列出對象的ID的對象,然後爲每個ID啓動一個對象,然後列出它們。OOP中的對象的大型列表?
這真的是最好的方法嗎? 這意味着在後臺執行一個數據庫查詢以獲取ID,然後在啓動時爲每個對象執行其他數據庫查詢。
當然,使用小列表時這沒有問題。但是在大型列表中,這意味着數據庫負載很重,不是嗎?
有沒有更好的方法來做到這一點?
(我希望這不是一個愚蠢的問題......而新OOP)
編輯:
好了,對不起,如果這還不夠清楚。 (也許是因爲我接近這一切都是錯誤的) 假設我有一張桌子和我所有的產品。現在我想將它們全部列出來......但是在將產品屬性輸出到列表之前,我需要進行一些數據轉換。該數據轉換(通常)由產品對象處理。
愚蠢的例子:
$product->replaceBadWordsInDescription();
現在,爲了能在我的名單使用這些功能,我需要有一個產品對象實例列表中的每一件產品,對不對?
我認爲flyweight模式可能是一種方式。我會讀到它。
2ND編輯:
我試圖減少我的問題是具體的。 (使用列表示例)但通常,在處理同一類的許多對象時,是否最好啓動每個對象並使用它的構造函數(或工廠)來從DB填充它的屬性,還是有更好的方法?
讓一個查詢返回我們想要創建的所有對象的所有屬性,然後將它們傳遞給對象初始化是不是會消耗更少的資源? (如果我理解正確的話,這是輕量級模式的想法)
試試這個:http://www.sitepoint.com/php-data-structures-1/ – marmeladze
你寫的第一句話並不是真的正確。你在談論通常的方式。通常的方式你在哪裏讀過關於通常的方式?你可以很容易地查詢數據庫,使用'join'和不知道如何獲得你想要使用的數據集,你在PHP中表示爲一系列對象(爲了便於使用它們)。您提到的數據庫負載過於模糊,數據庫可以處理很多**。沒有代碼,沒有實際的問題 - 所剩下的只是推測,而這不是這個網站的內容。請提供一些代碼,以便我們可以正常進行。 –
「但在大型列表中,這意味着數據庫負載很重,不是嗎?」 - 如果你真的產生了沉重的負擔,你肯定應該擔心客戶誰必須下載大量的html數據而不是數據庫... –