php - 这种“模式”有名称吗?
问题描述
我最近遇到了一种情况,通过包装类的工厂来创建类的延迟加载版本很有用。
我想做一些研究,以找出在我过于依赖它之前是否有任何我没有想到的问题,但我不知道该寻找什么。
编辑:在我的情况下,它涉及创建 cookie 和会话文件,在验证用户的凭据之前我不想这样做。
interface FooInterface
{
public function bar();
}
class Foo implements FooInterface
{
public function bar()
{
...
}
}
interface FooFactoryInterface
{
public function getFoo():FooInterface;
}
class FooFactory
{
public function getFoo():FooInterface
{
return new Foo(...);
}
}
class LazyFoo implements FooInterface
{
protected
$foo=null,
$factory;
public function __construct(FooFactoryInterface $factory)
{
$this->factory=$factory;
}
public function bar()
{
if($this->foo===null) $this->foo=$this->factory->getFoo();
return $this->foo->bar();
}
}
解决方案
推荐阅读
- postman - 如何使用 Postman 中的数据文件设置环境变量
- python - 使用 Tensorflow 加载 AutoML 生成的模型会引发“操作类型未注册 'ParseExampleV2”
- firebase - 使用 gcloud 服务帐户登录到 Firebase
- microsoft-teams - 将 dynatrace davis ai 与微软团队集成
- shell - 发现:缺少`-exec`的参数
- apache - IIS URL 重定向到本地主机和端口
- excel - 循环获取用户表单文本框中的值
- java - Java - 如何允许用户选择日期范围,然后检查日期范围是 7 天还是 14 天?
- python - Aerospike docker 连接被拒绝使用 docker servicename
- reactjs - Redux saga 调用一次,然后忽略相同的 saga