我创建了一个类,但是很大,并且需要很多方法。我想切片分开子类。
我尝试这样的事情:
class ParentClass{
}
class ChildClass1 extends ParentClass{
public function childFunction1(){
}
}
class ChildClass2 extends ParentClass{
public function childFunction2(){
}
}
$myObject = new ParentClass();
$myObject->childFunction1();
$myObject->childFunction2();
<小时/> 但不工作。
答案 0 :(得分:1)
不,它不会那样工作。你正在做的是实例化一个空类并尝试在其上调用方法。
您应该使用composition代替。基本思路是将compose
多个对象放入主对象中。根据功能中断对象。永远记住要遵循Single Responsibility Principle和其他SOLID。
答案 1 :(得分:0)
class ParentClass {
}
class ChildClass1 extends ParentClass{
public function childFunction1(){
}
}
class ChildClass2 extends ParentClass{
public function childFunction2(){
}
}
$myObject1 = new ChildClass1();
$myObject2 = new ChildClass2();
$myObject1->childFunction1();
$myObject2->childFunction2();
我觉得它就像这样
答案 2 :(得分:0)
我已经找到了解决方案。
class ParentClass{
public function childFunctions($className,$functionName){
$c = ucfirst($className);
$$className = neew $c();
return $$className->$finctionName(); // or echo
}
}
class ChildClass1 extends ParentClass{
public function childFunction1(){
}
}
class ChildClass2 extends ParentClass{
public function childFunction2(){
}
}
$myObject = new ParentClass();
$myObject->childFunctions("ChildClass1", "childFunction1");
$myObject->childFunctions("ChildClass2", "childFunction2");
这对我的问题有用。也许有人有同样的问题。
无论如何,谢谢你。