手机版

工厂方法模式中php设计模式的详细说明

时间:2021-09-10 来源:互联网 编辑:宝哥软件园 浏览:

本文以实例的形式详细介绍了PHP设计模式的工厂方法模式,可供PHP编程时参考。具体如下:

一.概念

工厂方法模式[静态工厂方法]是一种类创建模式

工厂模式的几种形式;

1.工厂方法模式也称为静态工厂方法

2.工厂方法也被称为多态工厂

3.抽象工厂也被称为工具包

二、地图分析:

第三,代码示例

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

?Php/***一个例子* *一个农场向市场出售水果*农场里有三种水果:苹果和葡萄*我们假设:1。水果有许多属性,每一个都是不同的,但是,它们有一些共同之处|种植、种植、接受和食用* 2。未来可能会增加新的水果。我们需要定义一个接口来标准化他们必须实现的方法。我们需要获得某种水果的等级。我们需要从农民那里获得某个水果的例子,以了解如何种植、种植、接收和食用*//* * *虚拟产品接口类*定义需要实现的方法。/* * *种植*/公共功能植物();/* * * harvest */公共函数harvest();/* * * eat */公共函数eat();}/* * *定义具体的产品类Apple *首先,我们需要实现继承接口*定义的方法,然后定义Apple的唯一属性,方法*/class apple实现水果{ //Apple tree有一个private $treeAge的年龄;//苹果有颜色私有$ color公共函数grow(){ echo '葡萄grow ';}公共功能植物(){ echo '葡萄植物';}公共函数harvest(){ echo '葡萄丰收';}公共函数eat(){ echo '葡萄eat ';}//取苹果树的树龄公共函数gettreage(){ return $ this-treage;}//设置苹果树的树龄公共函数settreage($ age){ $ this-treage=$ age;返回trie}}/* * *定义具体的产品类grapes *首先,我们需要实现继承接口*定义的方法,然后定义grapes的唯一属性,以及方法class grapes是否实现水果{ //grapes是否有种子private $ nueSe;公共函数grow(){ echo ' apple grow ';}公共功能植物(){ echo ' apple plant}公共函数harvest(){ echo ' apple harvest ';}公共函数eat(){ echo ' apple eat ';}//带或不带seed值公共函数get seeds(){ return $ this-seeds;}//Set无核公共函数Set无核($ seed){ $ this-无核=$ seed返回真;} }/* * * farmer类用于获取实例化的水果* */class farmer{ //定义了一个静态工厂方法public static function factory ($水果名称){switch ($水果名称){ case ' apple ' : return new apple();打破;案例‘葡萄’:退货新葡萄();打破;default:抛出新的badostoexception(‘错误没有结果’,1);打破;} } }类badFruitException扩展了Exception { public $ msgpublic $ errTypepublic function _ _ construct($ msg=' ',$ ErrType=1){ $ this-msg=$ msg;$ this-ErrType=$ ErrType;}}/* * *获取水果实例化的方法*/try { $ apple instance=farmer :3360 factory(' apple ');var _ dump($ apple instance);} catch(Badoshoxception $ err){ echo $ err-msg。'_______' .$ err-ErrType;}希望本文描述的例子对PHP编程有所帮助。

版权声明:工厂方法模式中php设计模式的详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。