2012-09-28 33 views
0

有類A和B兩者延伸C類和有在C類的一些常用的方法所需要兩個類A和B.可能性具有相同延伸,但彼此

調用方法有些情況下,它需要從類A中調用類B中的方法,此時通過在類A中創建類B的對象來實現。但是,越來越多的方法被添加到類C中,因此它效率低下由於重複而在類A內創建類B的對象。

我的問題是什麼是可能的解決方案來重構類,使他們有更好的結構,例如使用面向對象,工廠模式等?

在此先感謝。

+1

如果有類需要在類B中調用類A的方法,是不是更好地將它們移到類C? – raidenace

回答

0

您可以使用Traits(僅PHP> = 5.4.0)。

0

如果A和B所需要的方法可以分解爲單個責任,那麼您可以考慮添加類D然後由類A和B使用。單一責任主體(SRP)是SOLID中的S,這是面向對象設計的準則。

您可以在Google上找到大量有關SOLID的信息以及SRP在PHP中的應用。我向我們的本地PHP Meetup Group介紹了SRP,可以在這裏找到它:SRP Presentation