php中工厂方法的两个特殊例子

php中文网
发布: 2016-07-29 09:09:42
原创
882人浏览过

英特尔AI工具
英特尔AI工具

英特尔AI与机器学习解决方案

英特尔AI工具 70
查看详情 英特尔AI工具

工厂方法,简单来说就是生成包含类的实例的一种方法。
工厂模式是最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。
这里附上一个比较特殊的例子:
我们要创造一个地球人,地球有两种人,男人和女人:

<code><span><span><?php</span><span>//实现工厂方法</span><span><span>interface</span><span>abstracted</span>{</span><span>public</span><span><span>function</span><span>realCreate</span><span>()</span>;</span>
}
<span>//女人类</span><span><span>class</span><span>Wuman</span>{</span><span>public</span><span><span>function</span><span>action</span><span>()</span>{</span><span>echo</span><span>"这是女人"</span>;
    }
}
<span>//男人类</span><span><span>class</span><span>Man</span>{</span><span>public</span><span><span>function</span><span>action</span><span>()</span>{</span><span>echo</span><span>"这是男人"</span>;
    }
}
<span>//创建女人</span><span><span>class</span><span>womanCreator</span><span>implements</span><span>abstracted</span>{</span><span>public</span><span>$chromosome</span>;<span>//染色体</span><span>public</span><span><span>function</span><span>realCreate</span><span>()</span>{</span><span>if</span>(<span>$this</span>->chromosome == <span>"xx"</span>){
            <span>return</span><span>new</span> Wuman();
        }
    }
}
<span>//创建男人</span><span><span>class</span><span>manCreator</span><span>implements</span><span>abstracted</span>{</span><span>public</span><span>$chromosome</span>;<span>//染色体</span><span>public</span><span><span>function</span><span>realCreate</span><span>()</span>{</span><span>if</span>(<span>$this</span>->chromosome == <span>"xy"</span>){
            <span>return</span><span>new</span> Man();
        }
    }
}
<span>//人类工厂</span><span><span>class</span><span>PersonFactory</span>{</span><span>public</span><span><span>function</span><span>create</span><span>(<span>$category</span>)</span>{</span><span>$method</span> = <span>"{$category}Creator"</span>;
        <span>return</span><span>$create</span> = <span>new</span><span>$method</span>();
    }
}
<span>$create</span> = <span>new</span> PersonFactory();<span>//创造人类</span><span>$instance</span> = <span>$create</span>->create(<span>'woman'</span>);<span>//创造女人</span><span>$instance</span>->chromosome = <span>"xx"</span>;<span>//女性染色体</span><span>$instance</span>->realCreate()->action();

<span>?></span></span></code>
登录后复制
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了php中工厂方法的两个特殊例子,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号