我正在使用 Laravel (PHP)。我想重构下面的代码以要求 A 类和 B 类使用相同的 funsth()。funSth() 在两个类中重复,而唯一的区别是模型。
有没有办法可以简化到下面?是否可以将其重构为第二个代码?
当前的:
class A {
public function funSth(){
Models\Profile::create();
}
public function main(){
$this->funA();
}
}
class B {
public function funSth(){
Models\Location::create();
}
public function main(){
$this->funB();
}
}
预期的:
class A {
public function main(){
(new Y)->funSth();
}
}
class B {
public function main(){
(new Y)->funSth();
}
}
class Y {
public function funSth(){
Models\AnyModel::create();
}
}
Smart猫小萌