我有两种注释: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
}
}
有更好的方法吗?