欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php使用接口实现工厂设计模式

程序员文章站 2022-06-04 14:36:43
...

php实现工厂设计模式,使用接口实现,表面上接口没有什么用,因为php是类型自动转换的。实现上使用接口可以约束类的定义,从而实现一致的访问。 接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基于oop的封装要求,使用接口可以提高程序的可

php实现工厂设计模式,使用接口实现,表面上接口没有什么用,因为php是类型自动转换的。实现上使用接口可以约束类的定义,从而实现一致的访问。

接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基于oop的封装要求,使用接口可以提高程序的可扩展性,如实现代理设计模式。

";
			
		}
			
	}
	
	//女人类,实现人类接口
	class WomanClass implements IHuman
	{
		//获取姓名方法 
		public function GetName()
		{
			return "I'm Woman."."
"; } } //类工厂,根据需要生产不同实例对象返回 class ManFactory { //根据参数获取实例对象 public function GetIHuman($IHuman="man") { if($IHuman=="woman") { return new WomanClass(); } else if($IHuman=="man") { return new ManClass(); } else { return null; } } //直接获取woman类 public function GetWoman() { return new WomanClass(); //return new ManClass(); } //直接获取man类 public function GetMan() { return new ManClass(); } } $ManFactory=new ManFactory(); $ManClass=$ManFactory->GetIHuman(); echo $ManClass->GetName(); $IHuman=$ManFactory->GetIHuman("woman"); echo $IHuman->GetName(); $Woman=$ManFactory->GetWoman(); echo $Woman->GetName(); $Man=$ManFactory->GetMan(); echo $Man->GetName(); ?>

运行结果:

I'm man.
I'm Woman.
I'm Woman.
I'm man.