前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP plant

PHP plant

作者头像
Marco爱吃红烧肉
发布2021-12-24 14:08:12
1750
发布2021-12-24 14:08:12
举报
文章被收录于专栏:无敌小笼包

顾名思义,工厂是可以加工零件的,PHP程序中的工厂模式也有相同的功能,可以方便的使用一个静态的工厂方法来实例化某一个类,那么这样做的好处是什么呢?初学PHP的设计模式,实例化一个类会给它一些参数以便在其构析的时候可以根据不同的参数反馈出我们需要的结果。

代码语言:javascript
复制
举例说明,以下是一个User类,非常简单:
/**
*     factory pattern 工厂模式
*/
    interface abstracted        
    {
        public function realCreate();
    }
    //女人类
    class Woman
    {
        public function action()
        {
            echo '这是女人';
        }
    }
    //男人类
    class Man
    {
        public function action()
        {
            echo '这是男人';
        }
    }
    //创建女人
    class WomanCreator implements abstracted 
    {
        public $chromosome;//染色体
        public function realCreate(){
            if ($this->chromosome == "xx") 
            {
                return new Woman();
            }
        }
    }
    //创建男人
    class ManCreator implements abstracted 
    {
        public $chromosome;
        public function realCreate(){
            if ($this->chromosome == "xy" || $this->chromosome == "xyy") 
            {
                return new Man();
            }
        }
    }
    //人类工厂
    class PersonFactory
    {
        public function create($what)
        {
            $create = $what."Creator";  //womanCreator
            return  new $create();
        }
    }
    $create = new PersonFactory();
    $instance = $create->create('woman');
    $instance->chromosome = "xx";
    $instance->realCreate()->action();
?>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档