這裏有一個基本的前提,我使用db對象的活動記錄模式,我想我需要一些指導如何組織這些類。一般來說,我可能會分裂我的班級結構。希望我不會太過分地解釋這一點。如果構圖模式是要走的路,我可能需要一個小小的手來執行它。類結構可能需要實現組合來模仿多重繼承
假設有ActiveRecord
基類,在圖騰柱的底部處理將對象映射到數據庫和將數據映射到對象。
ActiveRecord
的孩子是一類通用的User
類,它處理用戶會話,登錄,保存密碼字段的加密等。
ActiveRecord
的另一個孩子是類。通常這門課與User
無關,但這是我的問題。
我想要一個子類,基本上是User
和的組合; UserButSlightlyMoreAdvanced
,而不必複製粘貼來自User
的所有方法。 User
擴展沒有任何意義,因爲它需要基本上覆蓋一些對User
有不良行爲的方法。 UserButSlightlyMoreAdvanced
擴展是有意義的,但我不得不從User
複製和粘貼一堆方法。
我知道有些人會用圖片更好地思考,所以這裏說明了結構。
基地
class ActiveRecord
{
....
}
兒童
class User extends ActiveRecord
{
....
}
另外兒童
class ActiveRecordButSlightlyMoreAdvanced extends ActiveRecord
{
....
}
的問題
class UserButSlightlyMoreAdvanced extends User AND ActiveRecordButSlightlyMoreAdvanced
{
:(:(:(
}
我一直在考慮這個問題大約一個月,現在想不到一個解決方案,如果他們中的一個實現保存的方式發生了變化,那麼這個解決方案不會負擔維護對象的負擔。我將在接下來的幾天嘗試一些解決方案,並可能發佈我認爲在這種情況下最好的解決方案。
你是對的><。我覺得我的輕微錯字有點摧毀了我的問題。 – Anther