我已經使用PHP進行了數年的編程,並且在過去採用了我自己的方法來處理我的應用程序中的數據。PHP域模型
我建立我自己的MVC過去,並有PHP內OOP有一定的瞭解,但我知道我的實現需要一些嚴肅的工作。
在過去,我已經使用了is-a的一個模型與一個數據庫表之間的關係。我現在知道,在做了一些研究之後,這不是真正的最佳前進方向。 據我瞭解,我應該創建模型,並不真正關心底層數據庫(或任何存儲機制將被使用),但只關心他們的行爲和他們的數據。
從這我已經確定,我可以創建模型讓我們說,例如一個人 這個人對象可能有一些兒童(人類的孩子)也是Person對象保存在一個數組(使用addPerson和removePerson方法,接受一個Person對象)。
然後我可以創造我可以用它來得到一個人與一個特定的「身份證」,或保存一個人PersonMapper。
這可能然後查找關係的數據中查找表,並創建已請求的人相關聯的子對象(如果有的話),並同樣在查找表節省save命令的數據。
現在這是挑戰極限,以我的知識.....
如果我想與這些級別中的不同層次和不同的房間建築模型?如果我想在這些房間放置一些物品怎麼辦?
我會創造建設,水平,房間和物品
用以下結構的一類。
建築物可以具有以陣列 水平保持可以具有1或多個室中的陣列 室對象保持1個或許多級對象可以有1個或以陣列保持每個
和映射器的許多項目對象類使用更高級別的映射器使用子映射器來填充數組(可以根據頂層對象的請求或請求的延遲加載)
這似乎將不同的對象緊緊耦合在一個方向上(即,不需要在建築物中,但建築物可以有水平)
這是關於事情的正確方法嗎?
在視圖內,我想顯示一個建築物,可以選擇一個等級,然後用選項選擇一個房間等來顯示等級。但是我也可能想顯示一個樹狀結構的項目建設和什麼級別和房間,他們都在。
我希望這是有道理的。當oop的一般概念似乎是將事物分開時,我只是在相互嵌套對象的概念上掙扎。
如果有人能幫上忙,那真的很有用。
嵌套聽起來沒錯。您可以嘗試在[程序員網站]上詢問同樣的問題(http://programmers.stackexchange.com) – Malachi
請勿在您的帖子上簽名 – Malachi
對簽署帖子感到抱歉,以後不會這樣做。 –