gpt4 book ai didi

php - Laravel 存储库模式契约

转载 作者:行者123 更新时间:2023-12-03 23:04:06 25 4
gpt4 key购买 nike

我正在尝试使用 Laravel 实现存储库模式。我可以理解使用接口(interface)来抽象数据存储的优势。

但是接口(interface)中定义的方法返回的对象呢?它们是否也应该在某种抽象类中定义?

例如:

class UserRepository implements UserInterface {
protected $user;

public function __construct(Model $user)
{
$this->user = $user;
}

public function find($userId)
{
return $this->user->find($userId);
}
}

在我的 Controller 中这样做:

$user = UserRepository::find(1);
$user->name

我是否打破了设计模式?

最佳答案

简短回答:是的。

长答案:根据Dependency Inversion Principle你总是必须依赖抽象而不是具体化。如果有一天您需要更改该模型的实现,则必须更改该存储库类,这也违反了 Open-Closed Principle .

关于php - Laravel 存储库模式契约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21630408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com