怎么在php项目中实现一个简单工厂模式

  介绍

今天就跟大家聊聊有关怎么在php项目中实现一个简单工厂模式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>一、概念

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

<强>工厂模式的几种形态:

1,简单工厂模式(简单工厂)又叫做静态工厂方法模式(静态工厂方法)

2,工厂方法模式(工厂方法)又叫做多态性工厂模式(多态工厂)

3,抽象工厂模式(抽象工厂)又叫做工具箱模式(工具包)

<强>二,配图分析:

怎么在php项目中实现一个简单工厂模式

<强>三、代码实例

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

& lt;及# 63;php/* *   *一个事例   *   *一个农场,要向市场销售水果   *农场里有三种水果苹果、葡萄   *我们设想:1、水果有多种属性,每个属性都有不同,但是,他们有共同的地方|生长,种植,收的货,吃   * 2,将来有可能会增加新的水果,我们需要定义一个接口来规范他们必须实现的方法   * 3,我们需要获取某个水果的类,要从农场主那里去获取某个水果的实例,来知道如何生长,种植,收的货,吃   *//* *   *虚拟产品接口类   *定义好需要实现的方法   */接口水果{/* *   *生长   */公共函数增长();/* *   *种植   */公共函数工厂();/* *   *收获   */公共函数收获();/* *   *吃   */公共函数吃();      }/* *   *定义具体产品类苹果   *首先,我们要实现所继承的接口所定义的方法   *然后定义苹果所特有的属性,以及方法   */类苹果实现水果{//苹果树有年龄   私人treeAge美元;//苹果有颜色   私人美元颜色;      公共函数增长(){   回声“葡萄grow";   }      公共函数工厂(){   回声“葡萄plant";   }      公共函数收获(){   回声“葡萄harvest";   }      公共函数吃(){   回声“葡萄eat";   }//取苹果树的年龄   公共函数getTreeAge () {   返回$ this→treeAge;   }//设置苹果树的年龄   公共函数setTreeAge(年龄美元){   $ this→treeAge=$年龄;   返回单词查找树;   }      }/* *   *定义具体产品类葡萄   *首先,我们要实现所继承的接口所定义的方法   *然后定义葡萄所特有的属性,以及方法   */类葡萄实现水果{//葡萄是否有籽   私人无籽美元;      公共函数增长(){   回声“苹果grow";   }      公共函数工厂(){   回声“苹果plant";   }      公共函数收获(){   回声“苹果harvest";   }      公共函数吃(){   回声“苹果eat";   }//有无籽取值   公共函数getSeedLess () {   返回$ this→无核;   }//设置有籽无籽   公共函数setSeedLess(种子){   $ this→无籽=美元种子;   返回true;   }   }/* *   *农场主类用来获取实例化的水果   *   */类农民{//定义个静态工厂方法   公共静态函数工厂(fruitName美元){   开关(fruitName美元){   & # 39;苹果# 39;:   返回新的苹果();   打破;   & # 39;葡萄# 39;:   返回新葡萄();   打破;   默认值:   把新的badFruitException(“错误没有fruit", 1);   打破;   }   }   }      类badFruitException扩展异常{   公共美元味精;   公共errType美元;   公共函数__construct($味精=& # 39;& # 39;errType=1美元){   $ this→味精=$味精;   $ this→errType=$ errType;   }   }/* *   *获取水果实例化的方法   */尝试{   $ appleInstance=农民::工厂(& # 39;苹果# 39;);   appleInstance美元var_dump ();   }捕捉(badFruitException犯错美元){   echo $犯错→味精。“_______"。犯错→美元errType;   }

看完上述内容,你们对怎么在php项目中实现一个简单工厂模式有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

怎么在php项目中实现一个简单工厂模式