简单工厂模式

Posted wujuntian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单工厂模式相关的知识,希望对你有一定的参考价值。

代码示例:

//产品抽象基类
abstract class ApptEncoder
{
	abstract public function encode();
}
//产品子类1
class BloggsApptEncoder extends ApptEncoder
{
	public function encode()
	{
		return "Appointment data encode in BloggsCal format
";
	}
}
//产品子类2
class MegaApptEncoder extends ApptEncoder
{
	public function encode()
	{
		return "Appointment data encode in MegaCal format
";
	}
}

//创建者
class CommsManager
{
	public function getApptEncoder($type)
	{
		switch($type)
		{
			case ‘Bloggs‘:
				return new BloggsApptEncoder();
			case ‘Mega‘:
				return new MegaApptEncoder();
		}
		
	}
}

$manager = new CommsManager();
//生成产品子类1对象
$encoder1 = $manager->getApptEncoder(‘Bloggs‘);
echo $encoder1->encode();
//生成产品子类2对象
$encoder2 = $manager->getApptEncoder(‘Mega‘);
echo $encoder2->encode();

  

以上是关于简单工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式学习——简单工厂模式工厂模式抽象工厂模式

PHP面向对象之选择工厂和更新工厂

设计模式-简单工厂工厂方法模式抽象工厂模式详解

设计模式之简单工厂模式

C++工厂模式(简单工厂工厂方法抽象工厂)

C++工厂模式(简单工厂工厂方法抽象工厂)