那麼,就我所知,OOP試圖讓我們的程序員變得更簡單,更容易理解和更具可讀性。
沒有規則來識別類。每個程序員都可以爲類似的項目實現不同的類。當我決定實施哪些課程時,我會問自己的問題 like:
- 我需要實現哪些功能?
- 我的功能是否支持我項目中的類似元素?
下面是我當前項目的一個示例:我正在製作一個分析系統,爲用戶呈現圖形。我做了2個班,一個叫analytic
,第二個叫analyticQueries
。第一個負責所有分析數據庫更新,第二個負責從數據庫獲取數據併爲圖形引擎做好準備。
爲什麼我沒有製作一個database
類?好吧,我認爲這樣會太沉重,而且正如我所看到的,有兩個主題需要分離以更好地理解該程序的工作方式:一個是編寫數據庫,另一個是從中讀取數據。
類(和規劃你的數據庫的一個好辦法)思維的另一種方法是問自己這些問題:
是誰,用項目
- ?
- 那些使用它的人的行爲是什麼?
- 誰在使用誰? (它可以幫助你建立關聯,在我的項目中,兩個分析類都連接到數據庫,我可以創建第三個類幷包含在兩個類中,但我認爲它不會那麼大而且這不是項目中需要自己班級的核心)。
在您的網站中,用戶是登錄的用戶,因此您肯定需要在數據庫中使用user
表。你肯定需要一個questions
表,也許answers
表。
你可以根據你的數據庫決定你想要的類,例如userManager
可以是一個負責所有用戶動作(登錄,更新細節等等)的函數,並且有一個questionManager
來處理問題提出並驗證答案。
一本很好的書,雖然它不是PHP的具體內容,但是是Eric Evans的Domain Driven Design。在這本書中,他涵蓋了許多您所要問的問題,例如如何識別域類和單獨的關注層。 – eli