首页 / 设计模式 / 设计模式一(抽象工厂模式)
设计模式一(抽象工厂模式)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式一(抽象工厂模式),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1927字,纯文字阅读大概需要3分钟。
内容图文
1.抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
抽象多个工厂;
<?php /* interface是完全抽象的,只能声明方法,而且只能声明 public 的方法,不能声明 private 及 protected 的方法 不能定义方法体,也不能声明实例变量 。 interface 却可以声明常量变量 。 */interface Car { const BIG=100; // public function getWidth(); //获取车宽度 不允许用private和protected修饰public function getHeight();//获取车高度} interface Colors { public function setColor($c); public function getColor(); } /** 抽象工厂类的定义;必须实现车和颜色的interface接口 1.抽象类是和抽象方法 2.抽象类不能被直接实例化即new;抽象类中只定义(或部分实现)子类需要的方法。 子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。 3.子类必须实现抽象类利所有抽象方法 4.抽象方法只能用public 和protected修饰 **/abstractclass AbstractFactory implements Car,Colors { //获取车的属性abstractpublic function getWidth(); abstractpublic function getHeight(); //获取车颜色abstractpublic function setColor($c); abstractpublic function getColor(); public function getName(){ return‘宝马‘; } } /* 子类必须实现父类的抽象方法和接口的方法 */class CarFactory extends AbstractFactory { protected $car_color; protected $h; protected $w; public function getWidth() { return1000; } public function getHeight() { return200; } public function setColor($c){ } public function getColor(){ returnnull; } } /* 子类必须实现父类的抽象方法和接口的方法 */class ColorFactory extends AbstractFactory { protected $car_color; protected $h; protected $w; public function getWidth() { returnnull; } public function getHeight() { returnnull; } public function setColor($c){ $this->car_color = $c; } public function getColor(){ return $this->car_color; } } //实现生产车的类class ProductCar { publicstatic function getFactory($type){ if($type==‘car‘){ returnnew CarFactory(); }elseif($type==‘color‘){ returnnew ColorFactory(); } } } //开始使用 //获取车属性 $fac_car = ProductCar::getFactory(‘car‘); echo $fac_car->getWidth(); //后去颜色属性 $fac_color = ProductCar::getFactory(‘color‘); $fac_color->setColor(‘红色‘); echo $fac_color->getColor(); ?>
原文:https://www.cnblogs.com/wanglijun/p/10924650.html
内容总结
以上是互联网集市为您收集整理的设计模式一(抽象工厂模式)全部内容,希望文章能够帮你解决设计模式一(抽象工厂模式)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。