根据类型获取模型实例

时间:2018-09-05 06:06:04

标签: laravel design-patterns factory-method

我有两种注释:ReferenceNote和TaskNote。它们都继承自BaseNote。

创建新笔记时,我在请求中输入了内容,并根据该类型创建了相应的模型。

但是当我需要通过id获取注释时如何获得相应的模型?

我当前的解决方案:

$base_note = BaseNote::find($id);

$note = $note_factory->getNote($base_note);

在工厂:

function getNote(BaseNote $base_note) {
    if ($base_note->type === self::REFERENCE_NOTE_TYPE) {
        $note = new ReferenceNote($base_note->getAttributes());
        //logic of adding additional attributes for reference note
    } else {
        $note = new TaskNote($base_note->getAttributes());
        //logic of adding additional attributes for task note
    }
}

有更好的方法吗?

0 个答案:

没有答案