我在一個專有項目上工作,這個項目使用了很多這種或那種形式的工廠。他們中的大多數不會按名稱實例化類,但是,是否使用new self()
或new static()
來實例化取決於開發人員。我應該使用新的自我還是新的靜態?
我意識到了這種差異,但是我很好奇,如果對於哪一種方法是「正確」的方式去解決遲滯靜態綁定在技術上沒有要求的話,我很好奇。例如,new static()
經常在服務類中找到,幾乎肯定不會被分類。這在抽象類中顯然很重要,但是我的偏好是使用new self()
,我不希望子類。
,解決技術問題的區別:
我很好奇:
- 是否有性能打到使用晚期靜態綁定?
- 採用一種做法是否會影響代碼維護?例如。如果我使用
new self()
繼承一個類,我必須重寫/更改所有這些情況,但如果我的構造函數更改,那也許這不是一件壞事。 - 有沒有記錄在這方面的最佳做法?我們至少在理想情況下使用PSR-2,但我不認爲它涵蓋了這一點。
對於問題1(是否有性能問題),請通過將其安裝1M次或類似的方法來對您的某些實際類別進行基準測試。 –