我有一个Foo
包含许多公共和私有方法的类。其中一种方法变得相当大,我想将它分叉到一个专门用于该目的的单独类中。像这样的东西:
<?php
class Foo
{
// ...
public function doX( $a, $b )
{
$x = new FooXDoer;
$x->foo = $this;
return $x->run( $a, $b );
}
// ...
}
class FooXDoer
{
public $foo;
public function run( $a, $b )
{
// ...
}
// ...
}
FooXDoer
可以通过 访问Foo
的公共方法和属性$this->foo
。
如何在不将它们公开给已经使用的其余代码的情况下授予FooXDoer
对私有方法和属性的访问权限?Foo
Foo
我是否应该创建一个单独的类FooPrivate
,该类将私有方法作为公共的,并且Foo
包装,然后FooXDoer
引用它?应该FooPrivate
叫什么?
还是我的方法完全错误?你一般如何解决这个问题?