注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

~~

~~

 
 
 

日志

 
 

php常见设计模式 工厂模式  

2013-07-09 10:19:46|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

工厂模式是一种类,它具有创建对象的某些方法。可以使用工厂类创建对象,而不直接使用new,如果想要更改创建的对象类型,只需要修改工厂即可。

<?php  
//抽象类
abstract class product{
    abstract function getName();
}

class productA extends product{
    public function getName(){
        echo "I am A.";
    }
}

class productB extends product{
    public function getname(){
        echo "I am B.";
    }
}

//工厂类(如果要修改创建对象的类型,只需要更改工厂类)
class factoryProduct{
    static function create($name){
        switch ($name){
            case "A":
                return new productA();
            case "B":
                return new productB();
        }
    }
}

$a = factoryProduct::create("A");
$b = factoryProduct::create("B");
$a->getName();
$b->getName();
#抽象方法指没有方法体的方法,具体就是在方法声明的时候没有 {} 括弧以及其中的内容,而是直接在声明时在方法名后加上分号结束
#抽象类只要一个类里有一个抽象的方法,这个类就要定义为抽象类.
?>


或者

<?php
interface IUser{  //定义用户对象要执行的操作
  function getName();
}

class User implements IUser{
  public function __construct( $id ) {}
  public function getName(){
    return "Jack";
  }
}

class UserFactory{
    public static function Create( $id ){
        return new User( $id );
    }
}

$uo = UserFactory::Create(1);
echo($uo->getName()."\n" );
?>

  评论这张
 
阅读(111)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018