如果使用autoloader函数(使用spl_autoLoad_register),则可以再次需要:

  • 单例:无论如何都将由自动加载器加载所有所需的类,包括数据库,日志,r&r,前面等所以需要“始终开启”等。对象对我来说并不清楚
  • 工厂:再次,自动加载器将加载所需的类,因此有一个点使用工厂类来实例化工人类实现界面,或扩展抽象类
有帮助吗?

解决方案

singleton用于保存特定类的单个实例,以便在检索实例时,它将始终相同。因此,设置数据将意味着在检索它时数据始终相同。

这与自动加载类不同,每次创建新实例时,您将状态重置为类的默认情况。尽管如此,单身应该谨慎使用,因为它们基本上是味道的全局变量。

工厂模式应用于委派对象的确定和创建。它在不想指定具体类时使用,但在一组条件下需要某个子类。您无法将施工参数传递给Autoloader,并且可能需要一些复杂的逻辑来解决应该从工厂返回哪个对象,因此它不会达到同样的事情。

Autoloader应仅用于查找类文件并包含它。它不应该(并且不能)做任何逻辑,例如实例化对象或做出关于加载哪个对象的决定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top