gpt4 book ai didi

php - 在 PHP 和 Laravel 中使用工厂模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:43 24 4
gpt4 key购买 nike

工厂是否应该负责寻找模型以及创建模型?

例如:

如果我有一个产品模型,它的工厂是否应该有这样的方法:

$product = $productFactory->findByID(32);

$product = $productFactory->all();

$product = $productFactory->findByName($productName);

$product = $productFactory->create($data);

最佳答案

嗯,其实工厂模式是一种创建型模式,它使用工厂方法来处理创建对象的问题,即使没有指定静态类,这意味着它创建在运行时动态对象。此模式用于处理对象创建机制,该机制允许客户端类使用基于运行时构建的动态类。此模式使用工厂方法(抽象),此方法根据使用构建对象的客户端类的请求使用其他类/对象构建对象。好吧,无论如何,这是一个广泛的事情。

与其考虑设计模式,例如您应该遵循哪种模式,不如尝试找出您的类的用例并相应地使用它们。很可能您的意思是 Model 作为扩展 Eloquent ORM 的类,在这种情况下,如果您扩展 Eloquent ORM,您的模型类已经具有这些方法,所以您不需要在您的类中创建它们,但为了分离业务逻辑和数据库层,您可以使用普通类,您可以在其中使用这些类作为依赖项来从数据库层类调用方法。可能这听起来很困惑。

这取决于你如何组织你的目录结构但只考虑SoC对于一个干净的应用程序架构模式,这足以让我们明白这一点。不要在设计模式上考虑太深,而是考虑一个干净的应用程序模型,仅此而已。大概 this article may help you一点点(专门讨论了使用 LaravelRepository Pattern)。

对于工厂模式,你可以检查this简单但有用的文章。

关于php - 在 PHP 和 Laravel 中使用工厂模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27349154/

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