PHP
发布时间:2019-11-10 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP设计模式之工厂方法设计模式实例分析,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了php设计模式之工厂方法设计模式。分享给大家供大家参考,具体如下:
一、什么是工厂方法模式
作为一种创建型设计模式,工厂方法模式就是要创建“某种东西”。对于工厂方法,要创建的“东西”是一个产品,这个产品与创建它的类之间不存在绑定。实际上,为了保持这种松耦合,客户会通过一个工厂发出请求,再由工厂创建所请求的产品。利用工厂方法模式,请求者只发出请求,而不具体创建产品。
二、什么时候使用工厂方法模式
如果实例化对象的子类可能改变,就要使用工厂方法模式。
三、一般工厂方法模式
使用一般工厂方法模式时,客户只包含工厂的引用,一个工厂生产一种产品。增加一种产品的同时需要增加一个新工厂类和一个新产品类。
php;">
produce(
);
return $pro;
}
}
//文本工厂
class TextFactory extends Factory
{
protected function produce()
{
$textProduct = new TextProduct(
);
return $textProduct->getProperties(
);
}
}
//图像工厂
class ImageFactory extends Factory
{
protected function produce()
{
$imageProduct = new ImageProduct(
);
return $imageProduct->getProperties(
);
}
}
//产品类接口
interface Product
{
public function getProperties(
);
}
//文本产品
class TextProduct implements Product
{
private $text;
function getProperties()
{
$this->text = "此处为文本";
return $this->text;
}
}
//图像产品
class ImageProduct implements Product
{
private $image;
function getProperties()
{
$this->image = "此处为图像";
return $this->image;
}
}
//客户类
class Client
{
private $textFactory;
private $imageFactory;
public function __construct()
{
$this->textFactory = new TextFactory(
);
echo $this->textFactory->startFactory() . '
';
$this->imageFactory = new ImageFactory(
);
echo $this->imageFactory->startFactory() . '
';
}
}
$client = new Client(
);
/*运行结果:
此处为文本
此处为图像
*/
?>
四、参数化工厂方法模式
使用参数化工厂方法模式时,客户包含工厂和产品的引用,发出请求时需要指定产品的种类,一个工厂生产多种产品。增加一种产品时只需要增加一个新产品类即可。
php;">
produce($product
);
return $pro;
}
}
//工厂实现
class ConcreteFactory extends Factory
{
protected function produce(Product $product)
{
return $product->getProperties(
);
}
}
//产品类接口
interface Product
{
public function getProperties(
);
}
//文本产品
class TextProduct implements Product
{
private $text;
public function getProperties()
{
$this->text = "此处为文本";
return $this->text;
}
}
//图像产品
class ImageProduct implements Product
{
private $image;
public function getProperties()
{
$this->image = "此处为图像";
return $this->image;
}
}
//客户类
class Client
{
private $factory;
private $textProduct;
private $imageProduct;
public function __construct()
{
$factory = new ConcreteFactory(
);
$textProduct = new TextProduct(
);
$imageProduct = new ImageProduct(
);
echo $factory->startFactory($textProduct) . '
';
echo $factory->startFactory($imageProduct) . '
';
}
}
$client = new Client(
);
/*运行结果:
此处为文本
此处为图像
*/
?>
更多关于php相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
大佬总结
以上是大佬教程为你收集整理的PHP设计模式之工厂方法设计模式实例分析全部内容,希望文章能够帮你解决PHP设计模式之工厂方法设计模式实例分析所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。