php使用接口实现工厂设计模式
2012-06-17 14:27
1006 查看
php实现工厂设计模式,使用接口实现,表面上接口没有什么用,因为php是类型自动转换的。实现上使用接口可以约束类的定义,从而实现一致的访问。
接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基于oop的封装要求,使用接口可以提高程序的可扩展性,如实现代理设计模式。
运行结果:
I'm man.
I'm Woman.
I'm Woman.
I'm man.
接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基于oop的封装要求,使用接口可以提高程序的可扩展性,如实现代理设计模式。
<?php //人类接口 interface IHuman { function GetName(); } //男人类,实现人类接口 class ManClass implements IHuman { //获取姓名方法 public function GetName() { return "I'm man."."<br>"; } } //女人类,实现人类接口 class WomanClass implements IHuman { //获取姓名方法 public function GetName() { return "I'm Woman."."<br>"; } } //类工厂,根据需要生产不同实例对象返回 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.
相关文章推荐
- php中使用接口实现工厂设计模式的代码
- php中使用接口实现工厂设计模式的代码
- PHP实现抽象工厂设计模式
- PHP设计模式笔记:使用PHP实现桥梁模式
- PHP设计模式笔记:使用PHP实现单例模式
- php设计模式之工厂模式(工厂模式实现计算器功能)
- PHP设计模式笔记:使用PHP实现单例模式
- PHP设计模式笔记:使用PHP实现门面模式
- 学习php设计模式 php实现工厂模式(factory)
- 设计模式之工厂模式(PHP实现)
- PHP设计模式笔记:使用PHP实现适配器模式
- C#设计模式之 :Abstract_Factory模式(使用接口实现)
- 使用单例和工厂设计模式实现dao实现层的解耦
- 设计模式-使用php实现工厂方法模式
- PHP设计模式笔记:使用PHP实现工厂模式
- php中迭代接口的使用,算不上设计模式
- 慕课网----大话PHP设计模式 二(数据结构的php实现,链式操作,php魔方方法的使用)
- GOF23设计模式之观察者模式的理解与实现2(使用java自带的观察者类和接口)
- 使用C++实现设计模式(连载): 第二回 Factory 工厂模式
- 设计模式实践-反射到所有接口实现类实践工厂方法,页面中有大量计算数据时设计实践