Foo
多数のパブリック メソッドとプライベート メソッドを持つクラスがあります。これらのメソッドの 1 つがかなり大きくなってきているので、その目的専用の別のクラスにフォークしたいと考えています。このようなもの:
<?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
と呼ぶべきですか?
それとも私のアプローチは完全に間違っていますか?一般的に、この問題をどのように解決しますか?