首页 > 作文

php设计模式之简单工厂模式详解

更新时间:2023-04-06 21:42:07 阅读: 评论:0

本文以实例形式较为详细的介绍了php设计模式的简单工厂模式,对于进行php程序设计来说有很好的借鉴作用。具体如下:

一、概念

简单工厂模式 【静态工厂方法模式】(static factory method)
是类的创建模式

工厂模式的几种形态:

1、简单工厂模式(simple factory)又叫做 静态工厂方法模式(static factory method)

2、工厂方法模式(factory method)又叫做 多态性工厂模式(polymorphic factory)

3、抽象工厂模式(abstract factory)又叫做 工具箱模式(toolkit)

二、配图分析:

三、代码实例

该实例代码经过测试可以运行,具体如下:

<?php/** * 一个事例 * * 一个农场,要向市场销售水果 * 农场里有三种水果 苹果、葡萄 * 我们设想:1、水果有多种属性,每个属性都有不同,但是,他们有共同的地方 | 生长、种植、收货、吃 *       2、将来有可能会增加新的水果、我们需要定义一个接口来规范他们必须实现的方法 *       3、我们需要获取某个水吾道画室果的类,要从农场主那里去获取某个水果的实例,来知道如何生长、种植、收货、吃 *//** * 虚拟产品接口类 * 定义好需要实现的方法 */interface fruit{  /**   * 生长   */  public function grow();  /**   * 种植   */  public function plant();  /**   * 收获   */  public function harvest();  /**   * 吃   */  public function eat();  }/** * 定义具体产品类 苹果 * 首先,我们要实现所继承的接口所定义的方法 * 然后定义苹果所特有的属性,以及方法 */class apple implements fruit{  //苹果树有年龄  private $treeage;  //苹果有颜色  private $color;  public function grow(){    echo "grape grow";  }  public function plantenvironment可数吗(){    echo "grape plant";  }  public function harvest(){    echo "grape harvest";  }  publi节能减排低碳生活c function eat(){    echo "grape eat";  }  //取苹果树的年龄  public function gettreeage(){    return $this->treeage;  }  //设置苹果树的年龄  public function ttreeage($age){    $this->treeage = $age;    return trie;  }}/** * 定义具体产品类 葡萄 * 首先,我们要实现所继承的接口所定义的方法 * 然后定义葡萄所特有的属性,北京市重点高中以及方法 */class grape implements fruit{  //葡萄是否有籽  private $edless;  public function grow(){    echo "apple grow";  }  public fun一事无成歌词ction plant(){    echo "apple plant";  }  public function harvest(){    echo "apple harvest";  }  public function eat(){    echo "apple eat";  }  //有无籽取值  public function getedless(){    return $this->edless;  }  //设置有籽无籽  public function tedless($ed){    $this->edless = $ed;    return true;  }}/** *农场主类 用来获取实例化的水果 * */class farmer{  //定义个静态工厂方法  public static function factory($fruitname){    switch ($fruitname) {      ca 'apple':        return new apple();        break;      ca 'grape':        return new grape();        break;      default:        throw new badfruitexception("error no the fruit", 1);        break;    }  }}class badfruitexception extends exception{  public $msg;  public $errtype;  public function __construct($msg = '' , $errtype = 1){    $this->msg = $msg;    $this->errtype = $errtype;  }  }/** * 获取水果实例化的方法 */try{  $appleinstance = farmer::factory('apple');  var_dump($appleinstance);}catch(badfruitexception $err){  echo $err->msg . "_______" . $err->errtype;}

希望本文所述实例对大家php程序设计有所帮助。

本文发布于:2023-04-06 21:42:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/5942f7c1f4972671c897f18cfbe690da.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php设计模式之简单工厂模式详解.doc

本文 PDF 下载地址:php设计模式之简单工厂模式详解.pdf

下一篇:返回列表
标签:模式   方法   工厂   定义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图