Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 重构具有相同扩展但相互调用方法的类的可能性_Php_Class_Refactoring - Fatal编程技术网

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

Php 重构具有相同扩展但相互调用方法的类的可能性,php,class,refactoring,Php,Class,Refactoring,类A和类B都扩展了类C,类C中有一些通用的方法是类A和B都需要的 在某些情况下,它需要从类A调用类B中的方法,目前是通过在类A中创建类B的对象来实现的。但是,越来越多的方法被添加到类C中,因此,由于重复,在类A中创建类B的对象效率很低 我的问题是,重构类以使其具有更好的结构(例如使用面向对象、工厂模式等)的可能解决方案是什么 预先感谢。 可以使用(仅PHP>= 5.4.0)。 < P>如果A和B所需要的方法可以归纳为单一的责任,那么你可以考虑添加类D,然后由类A和B使用。单责任主体(SRP)是实

类A和类B都扩展了类C,类C中有一些通用的方法是类A和B都需要的

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

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


预先感谢。

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

< P>如果A和B所需要的方法可以归纳为单一的责任,那么你可以考虑添加类D,然后由类A和B使用。单责任主体(SRP)是实心的S,这是面向对象设计的指导原则。
您可以在Google上找到大量关于SOLID的信息,以及SRP在PHP中的应用。我在SRP上向我们当地的PHP Meetup小组做了一个演示,可以在这里在线找到:

如果有情况需要在B类中调用来自a类的方法,将它们移动到C类不是更好吗?