重构具有相同扩展但可以相互调用方法的类的可能性

时间:2012-09-28 22:07:28

标签: php class refactoring

A类和B类都扩展了C类,C类中有一些常见的方法,它们都是A类和B类所必需的。

有些情况下它需要从类A调用类B中的方法,这是通过在类A中创建类B的对象来实现的。但是,越来越多的方法被添加到类C中,所以由于重复,在A类中创建B类对象效率很低。

我的问题是,重构类的可能解决方案是什么,以便它们具有更好的结构,例如使用面向对象,工厂模式等?

提前致谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果A和B所需的方法可以分解为单一责任,那么您可以考虑添加D类,然后由A类和B类使用。单一责任主体(SRP)是SOLID中的S,是面向对象设计的指南。

您可以在一般情况下找到有关SOLID的大量信息,以及在Google上使用SRP在PHP中的应用。我向SRP当地的PHP Meetup小组做了一个演示,可以在这里找到:SRP Presentation

相关问题