大佬教程收集整理的这篇文章主要介绍了模仿PHP中的多重继承,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用自己的MVC框架,发现自己陷于困境.
我需要以下构造:
Controller
--> BACkend_Controller
--> BACkend_Crud_Controller
--> Frontend_Controller
--> Frontend_Crud_Controller
“ BACkend_Crud_Controller”和“ Frontend_Crud_Controller”具有相同的功能,因此它们应该扩展名为“ Base_Crud_Controller”的另一个类,唯一的区别来自实现不同机制的“后端/前端”控制器.
基本上,它们应该继承这两个类,但我的问题是“后端/前端”控制器不一定扩展“ Base_Crud_Controller”.
我知道PHP中不存在多重继承,但是我正在寻找一种解决方案,我选择不使用mixins(就像在Symfony中一样),因为我认为这不是一个优雅的解决方案.
解决方法:
考虑使用Decorators或重新考虑您的设计.
class FrontEnd
{
protected $baseController;
public function __construct(BaseController $controller) { /* ... */}
// ...
// methods specific to Frontend
// ...
public function __call($method, args) {
// implement __call to delegate other methods to BaseController
}
}
您还可以创建一个BACkEnd和Crud Decorator并将它们堆叠在一起,例如
$crudBACkEndController = new Crud(new BACkEnd(new BaseController));
以上是大佬教程为你收集整理的模仿PHP中的多重继承全部内容,希望文章能够帮你解决模仿PHP中的多重继承所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。