У меня есть модель Log
, в которой есть столбец data
, в котором хранятся некоторые необработанные данные сообщения, которые могут представлять MessageA
или MessageB
.
Я делаю это в Laravel, и я думал, что фабричный шаблон для возврата экземпляра одного из этих сообщений из Log
будет способом пройти через getMessage()
.
Ниже упрощенно, но то, что я имею в тестировании, работает.Тем не менее, мне интересно, это хороший способ сделать это?Если нет, что я могу изменить?
class MessageA extends Message { ... }
class MessageB extends Message { ... }
class MessageFactory
{
public static function ($data)
{
// Returns MessageA or MessageB depending on $data
}
}
class Log
{
public function __construct()
{
return $this->factory = app(MessageFactory::class); // works
}
public function getMessage()
{
$this->factory->create($this->data);
}
}