私はそれを「配達員」と呼んでいます。私はそれのいくつかの変形を見てきましたが、問題は、クラスがそれを共同作業者に渡すという唯一の目的のために依存関係を持ち、依存関係自体を決して使用しないということです。
(私はPHPを使用しています。これは、私が最もよく知っているものですが、これは言語に依存しないためです)
class Dependency{}
class B {
public function setDependency(Dependency $dependency) {
//...
}
}
class A {
private $b;
private $dependency;
public function __construct(Dependency $dependency, B $b) {
$this->dependency = $dependency;
$this->b = $b;
}
public function foo() {
$this->b->setDependency($this->dependency);
}
}
おそらく、私が実際に目にする最も一般的なバリアントは、この目的で継承を悪用することです。親クラスが実際に依存関係自体を使用しない場合でも、子クラスが依存関係にアクセスできるように、親クラスにプロパティが存在します。
class Dependency{}
class A {
protected $dependency;
public function __construct(Dependency $dependency) {
$this->dependency = $dependency;
}
}
class B extends A {
public function foo() {
$this->dependency->bar();
}
}
私はこれを私が望むよりはるかに多くのコードで見ています、そしてそれは私をあまり幸せにしません!なぜそれが悪い考えなのかについて人々を読書資料にリンクできるように、これに名前があるのだろうかと思いました。現状では、何を検索すればいいのかわかりません!