工厂模式
来源:互联网 发布:书法边框软件 编辑:程序博客网 时间:2024/06/06 17:40
工厂模式就是一种类,具有为您创建对象的某些方法,这样就可以使用工厂类创建对象,而不直接使用new。这样如果想更改创建的对象类型,只需更改该工厂即可。
class Factory {//创建一个基本的工厂类 static public function fac($id){//创建一个返回对象实例的静态方法 if(1 == $id) return new A(); elseif(2==$id) return new B(); elseif(3==$id) return new C(); return new D(); }}interface FetchName {//创建一个接口 public function getname();//}class A implements FetchName{ private $name = "AAAAA"; public function getname(){ return $this->name; }}class C implements FetchName{ private $name = "CCCCC"; public function getname(){ return $this->name; }}class B implements FetchName{ private $name = "BBBBB"; public function getname(){ return $this->name; }}class D implements FetchName{ private $name = "DDDDD"; public function getname(){ return $this->name; }}$o = Factory::fac(6);//调用工厂类中的方法if($o instanceof FetchName){ echo $o->getname();//DDDDD}$p=Factory::fac(3);echo $p->getname();//CCCCChttps://www.ibm.com/developerworks/cn/opensource/os-php-designptrns/
阅读全文
0 0
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- POJ3723 Conscription 解题报告【Kruskal/最大生成树】
- Java 线程讲解
- ajax-动态添加控件
- MapReduce控制台打印释义
- Codechef REBXOR(01Trie)
- 工厂模式
- vue axios node cors 跨域解决 session验证
- XYG
- vs2015中stack overflow错误的解决
- C#224课的主要内容
- 【网络】POP3、IMAP和SMTP
- 作业
- 关于linux驱动触摸屏滑鼠问题的解决
- linux_ubuntu 14版本iNode安装——超简单成功版!!!