💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 单例模式 * * * * * 说明: > 工厂模式 是一种类,它具有为您创建对象的某些方法。工厂模式解决的是如何不通过new建立实例对象的方法,您可以使用工厂类创建对象,而不直接使用 new。这样,如果您想要更改所创建的对象类型,只需更改该工厂即可。使用该工厂的所有代码会自动更改。 使用目的: > 工厂模式的最大优点在于创建对象上面,就是把创建对象的过程封装起来,这样随时可以产生一个新的对象。 减少代码进行复制粘帖,耦合关系重,牵一发动其他部分代码。 通俗的说,以前创建一个对象要使用new,现在把这个过程封装起来了。 假设不使用工厂模式:那么很多地方调用类a,代码就会这样子创建一个实例:new a(),假设某天需要把a类的名称修改,意味着很多调用的代码都要修改。 实例: ~~~ interface IUser { function getName(); } class User implements IUser { public function __construct() { } public function getName() { return "Jack"; } } class UserFactory { public static function Create($class_name)// 创建对象 { return new $class_name(); } } $uo = UserFactory::Create('User'); echo($uo->getName() . "\n"); ~~~ 资料来源: http://www.cnblogs.com/wangtao_20/p/3594192.html https://www.ibm.com/developerworks/cn/opensource/os-php-designptrns/