工厂模式:使用工厂方法或者类生成对象,而不是在代码中直接new。
目的
使用工厂模式,可以避免当改变某个类的名字或者方法之后,在调用这个类的所有的代码中都修改它的名字或者参数。
单例模式 vs 工厂模式
单例模式解决如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。
实例代码
1.创建测试类
<?php
class Test{
public function test(){
echo '我是工厂模式测试类';
}
}
2.创建测试工厂类 TestFactory.php
<?php
class TestFactory{
/*
* 如果某个类在很多的文件中都new ClassName(),那么万一这个类的名字
* 发生变更或者参数发生变化,如果不使用工厂模式,就需要修改每一个PHP
* 代码,使用了工长模式之后,只需要修改工厂类或者方法就可以了。
*/
static function getInstance(){
$test = new Test();
return $test;
}
}
3.使用测试工厂类
<?php
spl_autoload_register('autoload_test');
function autoload_test($class){
require __DIR__ . "\\".$class.".php";
}
$test = TestFactory::getInstance();
$test->test();
工厂模式可细分为:简单工厂模式、工厂方法模式、抽象工厂模式、静态工厂方法
具体细节后续完善
发表评论 取消回复