一起源码网

  • www.171739.xyz
  • 全球最大的互联网技术和资源下载平台
搜索
猜你喜欢
查看: 4937|回复: 1
打印 上一主题 下一主题

php中常见的工厂设计模式详解

[复制链接]

0

主题

0

帖子

1万

积分

钻石会员

Rank: 8Rank: 8

积分
17424
QQ
跳转到指定楼层
楼主
发表于 2020-4-19 22:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、工厂模式
是一种类,它具有为您创建对象的某些方法。您可以使用工厂类创建对象,而不直接使用 new。这样,如果您想要更改所创建的对象类型,只需更改该工厂即可。使用该工厂的所有代码会自动更改。

下面代码为显示工厂类的一个示列。等式的服务器端包括两个部分:数据库和一组 PHP 页面,这些页面允许您添加反馈、请求反馈列表并获取与特定反馈相关的文章。

IUser 接口定义用户对象应执行什么操作:


interface IUser
{  function getName();
}

  IUser 的实现称为 User:


class User implements IUser
{  public function __construct( $id ) { } 
  public function getName()
  {    return "Jack";
  }
}

  UserFactory 工厂类则创建 IUser 对象:


class UserFactory
{  public static function Create( $id )
  {    return new User( $id );
  }
}

  测试代码会向工厂请求 User 对象,并输出 getName 方法的结果:


$pr = UserFactory::Create( 1 );echo( $pr->getName()."
" );

  有一种工厂模式的变体使用工厂方法。类中的这些公共静态方法构造该类型的对象。如果创建此类型的对象非常重要,此方法非常有用。例如,假设您需要先创建对象,然后设置许多属性。此版本的工厂模式会将该进程封装在单个位置中,这样,不用复制复杂的初始化代码,也不必将复制好的代码在在代码库中到处粘贴。


interface IUser //接口{  function getName();
} 
class User implements IUser
{  public static function Load( $id ) //静态函数  {        return new User( $id );
  }  public static function Create( ) //静态函数  {        return new User( null );
  }  public function __construct( $id ) { }//构造函数
 
  public function getName()
  {    return "Jack";
  }
} 
$uo = User::Load( 1 );echo( $uo->getName()."
" );

分享到:  QQ好友和群QQ好友和群
收藏收藏
回复

使用道具 举报

0

主题

16

帖子

52

积分

注册会员

Rank: 2

积分
52
沙发
发表于 2022-9-26 19:07 来自手机 | 只看该作者
erp怎么下载安装
回复

使用道具 举报

一起源码让程序更轻更快

www.171739.xyz

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表