国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

基于php設計模式中工廠模式詳細介紹

2024-05-04 21:53:42
字體:
來源:轉載
供稿:網友

工廠模式:由工廠類根據參數來決定創建出哪一種產片類的實例
工廠類:一個專門用來創建其他對象的方法類。即按需分配,傳入參數進行選擇,返回具體的類
作用:對象創建的封裝、簡化創建對象的操作,即調用工廠類的一個方法來得到需要的類
補充:
1.主要角色
:抽象產品(Product)、具體產品(Concrete Product)、抽象工廠角色(Creator)
2.優缺點
優點:工廠方法模式可以允許系統在不修改工廠角色的情況下引進心產品
缺點:客戶可能僅僅為了創建一個特定的Concrete Product對象,就不得不創建一個Creator子類
3.適用性
當一個類不知道它所必須創建的對象的時候
當一個類希望由它的子類來制定它所創建的對象的時候
當一個類將創建對象的職責委托給多個幫助子類的某一個,并且希望你將哪一個幫助子類是代理這一信息局部化的時候

復制代碼 代碼如下:www.CuoXIn.com

<?php
//對象
class MyObject{
public function __construct(){}
public function test(){
return 'test';
}
}
//工廠
class MyFactory{
public static function factory(){
return new MyObject();
}
}

$myObject = MyFactory::factory();
echo $myObject->test();
?>

?<?php
//抽象類 定義屬性及抽象方法
abstract class Operation{
protected $_NumberA = 0;
protected $_NumberB = 0;
protected $_Result= 0;

public function __construct($A,$B){
$this->_NumberA = $A;
$this->_NumberB = $B;
}

public function setNumber($A,$B){
$this->_NumberA = $A;
$this->_NumberB = $B;
}

public function clearResult(){
$this->_Result = 0;
}

abstract protected function getResult();
}

//操作類
class OperationAdd extends Operation{
public function getResult(){
$this->_Result = $this->_NumbserA + $this->_NumberB;
return $this->_Result;
}
}

class OperationSub extends Operation{
public function getResult(){
$this->_Result = $this->_NumberA - $this->_NumberB;
return $this->_Result;
}
}
…………

//工廠類
class OperationFactory{
private static $obj;

public static function CreationOperation($type,$A,$B){
switch($type){
case '+':
self::$obj = new OperationAdd($A,$B);
break;
case '-':
self::$obj = new OperationSub($A,$B);
break;
……
}
}
}

//操作
$obj = OperationFactory:: CreationOperation('+',5,6);
echo $obj-> getResult();
?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禄丰县| 察雅县| 五原县| 会宁县| 当涂县| 洪江市| 涿鹿县| 万宁市| 罗甸县| 丹棱县| 博罗县| 稻城县| 怀柔区| 武邑县| 霍林郭勒市| 桂东县| 兴文县| 淄博市| 抚州市| 侯马市| 新宾| 布尔津县| 铜川市| 彩票| 宝山区| 平泉县| 张家港市| 鄂尔多斯市| 新龙县| 台北县| 额尔古纳市| 鞍山市| 霸州市| 北辰区| 南江县| 松滋市| 阳原县| 赣州市| 建始县| 太谷县| 通河县|