《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學院為您提供專業教程。