【问题标题】:Using the Factory Pattern in PHP and Laravel在 PHP 和 Laravel 中使用工厂模式
【发布时间】:2014-12-07 23:30:26
【问题描述】:

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

例如:

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

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

$product = $productFactory->all();

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

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

【问题讨论】:

    标签: php oop design-patterns laravel factory-pattern


    【解决方案1】:

    好吧,实际上Factory Pattern 是一个creational pattern,它使用工厂方法来处理创建对象的问题,即使没有指定静态类,这意味着它在run-time 处动态创建对象。此模式用于处理对象创建机制,该机制允许客户端类使用基于运行时构建的动态类。此模式使用工厂方法(抽象),并且此方法使用其他类/对象构建对象,具体取决于使用构建对象的客户端类的请求。好吧,无论如何,这是一个广泛的事情。

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

    这取决于你如何组织你的目录结构,但只考虑SoC 就足以理解这个想法,以获得一个干净的应用程序架构模式。不要把设计模式想得太深,而是想一个干净的应用程序模型,就是这样。大概this article may help you一点点(专门讨论用LaravelRepository Pattern)。

    对于Factory Pattern,您可以查看this 简单但有用的文章。

    【讨论】:

      猜你喜欢
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多