本文以实例的形式详细介绍了PHP设计模式的简单工厂模型,对PHP程序的设计有很好的参考价值:

第一,概念

简单工厂模式{静态工厂方法模式}(静态工厂方法)

是类的创建模式。

工厂模式的几种形式:

1。简单工厂模式(简单工厂)也称为静态工厂方法。

2。工厂方法也称为多态工厂模型(多态工厂)。

三.抽象工厂模式(抽象工厂)也称为工具箱模型(工具包)。

二、文本分析:



三。代码实例

示例代码可以在测试之后运行,如下所示:


< PHP

*案例
*
*一个向市场出售水果的农场
农场里有三种水果,苹果和葡萄。
我们假设:1、水果有多种属性,每个属性是不同的,但他们有共同的东西|生长、种植、收货、吃
* 2,在未来,有可能添加新的成果,我们需要定义一个接口来规范他们必须实现的方法。
* 3,我们需要一个水果班,我们需要从农民那里得到一个水果,知道如何种植,种植,收获和食用。
* /



*虚拟产品接口类
*定义需要实现的方法
* /

界面水果{


*增长
* /
公共职能增长();


*种植
* /
公共功能装置();

/ * *
*收获
* /
公共功能收获();

/ * *
*吃
* /
公共功能餐();

}

/ * *
*定义特定的产品,如苹果
*首先,我们要实现由继承接口定义的方法。
然后定义苹果特有的属性和方法。
* /
苹果类实现水果{

苹果树的树龄
私人TreeAge美元;

苹果/色
私人$颜色;

公共函数增长(){
葡萄生长;
}

公共函数工厂(){
葡萄植物;
}

公共函数收获(){
葡萄收获;
}

公共功能吃(){
葡萄吃;
}

以苹果树的树龄为例
公共功能gettreeage(){
返回这个-> TreeAge;
}

设置苹果树的年龄
公共功能settreeage($岁){
美元-> TreeAge = $年龄;
回归树;
}

}


*定义特定产品类葡萄
*首先,我们要实现由继承接口定义的方法。
然后定义葡萄特有的属性和方法。
* /
葡萄类实施水果{

如果有葡萄籽
私人无核;

公共函数增长(){
回声苹果生长;
}

公共函数工厂(){
苹果植物;
}

公共函数收获(){
苹果收获;
}

公共功能吃(){
苹果吃;
}

没有种子值
公共功能getseedless(){
返回$无核;
}

设置/无籽/无籽
公共功能setseedless($种子){
美元=无籽=种子;
返回true;
}
}


*农场主用来获取实例化的果实
*
* /
类农民{

定义静态工厂方法
公共静态函数厂($ fruitname){
开关($ fruitname){
case'apple:
返回新苹果();
打破;
case'grape:
还新葡萄();
打破;
违约:
把新的badfruitexception(错误无果
打破;
}
}
}

类badfruitexception延伸例外{
公共味精;
公共errtype美元;
公共功能__construct($味精= '',errtype美元= 1){
$ >味精=味精;
美元-> errtype = $ errtype;
}
}

/ * *
*获得果实实例化的方法
* /
尝试{
appleinstance美元=农民::厂('apple);
var_dump($ appleinstance);
} catch(badfruitexception $ ERR){
返回$。_______美元-> errtype犯错;
}




希望本文中描述的示例将有助于PHP程序设计。