@Aricus

Как сделать зависимость более абстрактной?

Есть такая зависимость (в упрощённом виде):
// Класс ошибок
class Err {
	// Запись сообщения
	public function remember($mess) {
		...
	}
}
// Класс файлов
class File {
	// Вывести ошибку
	protected function setError(string $error) {
		$this->ok = false;
		(new Err)->remember('Ошибка в папке '.$this->cut('').':<br>'.$error);
	}
}

Я понимаю, что нужно сделать эту зависимость абстрактной, чтобы можно было без изменений перенести класс File (и другие классы, сделанные в рамках проекта) в другой проект, где ошибки пишутся по-другому. Как конкретно это можно сделать?
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
vitaly_74
@vitaly_74
Попробуйте использовать интерфейсы. Но из проекта в проект. с методами не угадаете, поэтому из проекта в проект вам придется использовать паттерн адаптер + интерфейс. адаптер чтобы угадать с именем метода, в новом проекте. но это всё геморно. но ответ на ваш вопрос я дал
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы