《PHP应用:php设计模式之简单工厂模式详解》要点:
本文介绍了PHP应用:php设计模式之简单工厂模式详解,希望对您有用。如果有疑问,可以联系我们。
PHP编程本文以实例形式较为详细的介绍了PHP设计模式的简单工厂模式,对于进行PHP程序设计来说有很好的借鉴作用.具体如下:
PHP编程一、概念
PHP编程简单工厂模式 【静态工厂办法模式】(Static Factory Method)
是类的创建模式
PHP编程工厂模式的几种形态:
PHP编程1、简单工厂模式(Simple Factory)又叫做 静态工厂办法模式(Static Factory Method)
PHP编程2、工厂办法模式(Factory Method)又叫做 多态性工厂模式(Polymorphic Factory)
PHP编程3、抽象工厂模式(Abstract Factory)又叫做 工具箱模式(ToolKit)
PHP编程二、配图分析:
PHP编程
PHP编程三、代码实例
PHP编程该实例代码经过测试可以运行,具体如下:
- PHP编程
- <?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 plant(){
- echo "grape plant";
- }
- public function harvest(){
- echo "grape harvest";
- }
- public function eat(){
- echo "grape eat";
- }
- //取苹果树的年龄
- public function getTreeAge(){
- return $this->treeAge;
- }
- //设置苹果树的年龄
- public function setTreeAge($age){
- $this->treeAge = $age;
- return trie;
- }
- }
- /**
- * 定义具体产品类 葡萄
- * 首先,我们要实现所继承的接口所定义的办法
- * 然后定义葡萄所特有的属性,以及办法
- */
- class grape implements fruit{
- //葡萄是否有籽
- private $seedLess;
- public function grow(){
- echo "apple grow";
- }
- public function plant(){
- echo "apple plant";
- }
- public function harvest(){
- echo "apple harvest";
- }
- public function eat(){
- echo "apple eat";
- }
- //有无籽取值
- public function getSeedLess(){
- return $this->seedLess;
- }
- //设置有籽无籽
- public function setSeedLess($seed){
- $this->seedLess = $seed;
- return true;
- }
- }
- /**
- *农场主类 用来获取实例化的水果
- *
- */
- class farmer{
- //定义个静态工厂办法
- public static function factory($fruitName){
- switch ($fruitName) {
- case 'apple':
- return new apple();
- break;
- case '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编程希望本文所述实例对大家PHP程序设计有所帮助.
欢迎参与《PHP应用:php设计模式之简单工厂模式详解》讨论,分享您的想法,维易PHP学院为您提供专业教程。