Экземпляр класса в конструкторе

Я не уверен с моим подходом. A имеет два класса и вызывает функции первого класса во втором классе следующим образом:

class A {

public function aClassFunction() {...}

}class B {

private $aClass;

public function __construct() {
$this->aClass = new A();
}

public function bClassFunction() {
$test = $this->aClass->aClassFunction();
}
}

Это просто работает, но выглядит «подозрительно».

0

Решение

Вы можете использовать внедрение зависимости в B учебный класс. Такой подход поможет вам дразнить классы в тесте.

class B {

private $aClass;

public function __construct(A $a) {
$this->aClass = $a;
}

public function bClassFunction() {
$test = $this->aClass->aClassFunction();
}
}

$b = new B(new A());
1

Другие решения

Выглядит «подозрительно» как зависимость. Почему бы не ввести зависимость?

class B {

private $aClass;

public function __construct($object) {
$this->aClass = $object;
}

public function bClassFunction() {
$test = $this->aClass->aClassFunction();
}
}
1

По вопросам рекламы [email protected]