Использование методов со своими свойствами, внутри методов других классов со своими свойствами?

Ссылка скопирована
1 ответ

Если сообщение является "командой" - создаю новый объект Command (у него одно свойство - String command). Запускаю метод DefineCommand (определяет какая команда). Взависимости от команды,
запускаю метод. Например /start = CommandStart или /games = CommandGames.

В этих методах, должны вызыватся методы других объектов.
Например, метод SendMessage, который находится в объекте Bot, метод принимает chat_id.

В общем, чтобы отправить сообщение внутри метода StartCommand, нужно в объект "Command" или в метод StartCommand, запихивать параметры: Object bot, chat_id.

Не является ли это не правильным решением? Видь Command и Bot разные вещи.

Как поступить?

Дополнительно:

Вы затрудняетесь в выборе между шаблонами 'внедрение зависимостей' и 'инверсия зависимостей'. Тут нет однозначно верного решения, поскольку для этого нужно знать каким образом будет (и будет ли) расширяться поведение ваших классов в будущем.
Исходя из описанного, я думаю, что оба способа будут иметь одинаковый результат. А в будущем вы легко сможете изменить выбранную архитектуру, если возникнет такая необходимость.
То есть, речь о том, что проблемы можно решать по мере их поступления.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Дмитрий К. Ответ

Для использования методов с их свойствами внутри других классов с их собственными свойствами в PHP можно применить следующий подход.

Для начала определим два класса: ClassA и ClassB. Класс ClassA будет содержать метод getA(), который возвращает значение своего свойства $a. Класс ClassB будет содержать метод, который использует метод getA() класса ClassA и выводит значение своего свойства $b.

Пример кода:

class ClassA {
private $a = 10;

public function getA() {
return $this->a;
}
}

class ClassB {
private $b = 20;
private $classA;

public function __construct(ClassA $classA) {
$this->classA = $classA;
}

public function printValues() {
$aValue = $this->classA->getA();
echo "Value of a: " . $aValue . "

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно