php设计模式 — 工厂方法模式(多态性工厂模式) (虚拟构造子模式)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php设计模式 — 工厂方法模式(多态性工厂模式) (虚拟构造子模式),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1498字,纯文字阅读大概需要3分钟。
内容图文
概念介绍:
工厂方法模式: 在学习工厂方法模式之前请首先阅读简单工厂模式
工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中.
工厂方法模式是简单工厂模式的进一步抽象和推广
工厂方法模式的几个需要的对象:
1、抽象工厂
2、具体工厂:实现抽象工厂接口列出的方法,并且每个工厂对应各自的产品
3、抽象产品
4、具体产品
工厂方法模式里面的果园的例子,可以改写成工厂方法模式 , 大家可以自己实验。
案例图:
代码实例:
1 <?php 2 3//此实例是根据女娲造人写的 4 5//首先定义一个全局的工厂接口 6//由阴绳 阳绳来继承 都要实现举绳子这个方法 7interface nvwaRope{ 8publicfunction liftRope($name); 9} 1011//定义阴绳 来继承 nvwaRope12class yinRope implements nvwaRope{ 13publicfunction liftRope($name){ 14returnnew boy($name); 15 } 16} 1718//定义阳绳 19class yangRope implements nvwaRope{ 20publicfunction liftRope($name){ 21returnnew girl($name); 22 } 23} 242526//定义一个人的抽象接口27interface people{ 28publicfunction eat(); 29publicfunction getName(); 30} 313233abstractclass abstractPeople implements people{ 34private$name; 3536publicfunction __construct($name){ 37$this->name = $name; 38 } 3940publicfunction eat(){ 41echo$this->name . " eat"; 42 } 4344publicfunction getName(){ 45echo$this->name; 46return$this->name; 47 } 4849//检查是否有胸50publicfunction checkChest(){ 51return$this->haveChest; 52 } 53} 5455class boy extends abstractPeople{ 56public$haveChest = false; //男孩没有胸57} 5859class girl extends abstractPeople{ 60public$haveChest = true; //女孩有胸61} 62636465//使用方式 6667//首先获取工厂的实例 也就是阴绳或者阳绳的实例68$yinRope = new yinRope(); 6970$people = $yinRope->liftRope("张三"); 71echo$people->eat(); 72echo$people->getName(); 73var_dump($people->checkChest());
原文:http://www.cnblogs.com/aqsmoke/p/3958585.html
内容总结
以上是互联网集市为您收集整理的php设计模式 — 工厂方法模式(多态性工厂模式) (虚拟构造子模式)全部内容,希望文章能够帮你解决php设计模式 — 工厂方法模式(多态性工厂模式) (虚拟构造子模式)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。