婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP設計模式之工廠模式詳解

PHP設計模式之工廠模式詳解

熱門標簽:襄陽房產電銷機器人招商 安徽移動外呼系統(tǒng) 清遠陽山400電話號碼如何申請 百度地圖標注名編輯 百度地圖標注飯店位置怎么 怎么在高德地圖標注行走軌跡 個性化地圖標注在線 施工地圖標注怎么做 深圳400電話辦理那家好

在開發(fā)大型系統(tǒng)時,往往會出現(xiàn)這樣一種情況:

我有一部分基礎數(shù)據(jù),是類classA是從數(shù)據(jù)庫A讀取出來的,其他很多的功能都是基于這個基礎數(shù)據(jù)來操作的。現(xiàn)在呢,我想把數(shù)據(jù)從數(shù)據(jù)庫A變成從另外的數(shù)據(jù)源去獲取,這時候,要修改起來就比較麻煩,要修改其他很多類的代碼。這種設計顯然是不夠靈活的,換句話說,就是緊耦合的,那么什么是緊耦合呢?緊耦合就是指系統(tǒng)中某個部分的函數(shù)或類嚴重依賴于系統(tǒng)的其他部分中的函數(shù)或類的行為和結構。

這時,工廠模式的作用性就體現(xiàn)出來了。

工廠模式    

就是解決這樣的一些情況的設計方法。

工廠模式是一種類,建立了一個工廠來根據(jù)所需來創(chuàng)建對象,這種方式在多態(tài)性編程中是很重要的,允許動態(tài)替換類,修改配置等。

/*基本工廠模式代碼*/

?php 
/** 
 * 基本工廠模式 
 * */ 
class User { 
 private $username; 
 public function __construct($username) { 
  $this->username = $username; 
 } 
  
 public function getUser() { 
  return $this->username; 
 } 
} 
 
class userFactory { 
 static public function createUser() { 
  return new User('Jack'); 
 } 
} 
 
$user = userFactory::createUser();echo $user->getUser(); 

?>

工廠模式分為:簡單工廠模式、工廠方法模式、抽象工廠模式。

簡單工廠模式,通過靜態(tài)方法創(chuàng)建對象。可以理解成,只負責生產同一等級結構中的任何一個產品,但是不能新增產品。

?php

/** 
 *簡單工廠模式 
 * */ 
interface userProperties { 
 function getUsername(); 
 function getGender(); 
 function getJob(); 
} 
class User implements userProperties{ 
 private $username; 
 private $gender; 
 private $job; 
 public function __construct($username, $gender, $job) { 
  $this->username = $username; 
  $this->gender = $gender; 
  $this->job = $job; 
 } 
 
 public function getUsername() { 
  return $this->username; 
 } 
 
 public function getGender() { 
  return $this->gender; 
 } 
 
 public function getJob() { 
  return $this->job; 
 } 
} 
 
class userFactory { 
 static public function createUser($properties = []) { 
  return new User($properties['username'], $properties['gender'], $properties['job']); 
 } 
} 
 
$employers = [ 
 ['username' => 'Jack', 'gender' => 'male', 'job' => 'coder'], 
 ['username' => 'Marry', 'gender' => 'female', 'job' => 'designer'], 
 ]; 
$user = userFactory::createUser($employers[0]); 
echo $user->getUsername(); 
 
?>

工廠方法模式,去掉了簡單工廠模式中方法的靜態(tài)屬性,使其可以被子類集成,定義一個創(chuàng)建對象的接口,讓子類去決定實例化哪個類。可以理解成,用來生產同一等級結構中的固定產品,但是支持增加產品。

?php
/** 
 * 工廠方法模式 
 **/ 
interface userProperties { 
 function getUsername(); 
 function getGender(); 
 function getJob(); 
} 
 
interface createUser { 
 function create($properties); 
} 
 
class User implements userProperties{ 
 private $username; 
 private $gender; 
 private $job; 
 public function __construct($username, $gender, $job) { 
  $this->username = $username; 
  $this->gender = $gender; 
  $this->job = $job; 
 } 
 
 public function getUsername() { 
  return $this->username; 
 } 
 
 public function getGender() { 
  return $this->gender; 
 } 
 
 public function getJob() { 
  return $this->job; 
 } 
} 
 
class userFactory { 
 private $user; 
 public function __construct($properties = []) { 
  $this->user = new User($properties['username'], $properties['gender'], $properties['job']); 
 } 
 
 public function getUser() { 
  return $this->user; 
 } 
} 
 
class FactoryMan implements createUser { 
 function create($properties) { 
  return new userFactory($properties); 
 } 
} 
 
class FactoryWoman implements createUser { 
 function create($properties) { 
  return new userFactory($properties); 
 } 
} 
 
class clientUser { 
 static public function getClient($properties) { 
  $fac = new FactoryMan; 
  $man = $fac->create($properties); 
  echo $man->getUser()->getUsername(); 
 } 
} 
 
$employers = [ 
 ['username' => 'Jack', 'gender' => 'male', 'job' => 'coder'], 
 ['username' => 'Marry', 'gender' => 'female', 'job' => 'designer'], 
 ]; 
$user = clientUser::getClient($employers[0]); 
 
?>

抽象工廠模式,提供一個創(chuàng)建一系列相關或者相互依賴的對象的接口。可以理解成,用來生產不用類型的全部產品,但是不能增加新品,支持增加新的類型。

?php

/** 
 * 抽象工廠模式 
 * */ 
 
interface userProperties { 
 function getUsername(); 
 function getGender(); 
 function getJob(); 
} 
 
interface createUser { //將對象的創(chuàng)建抽象成一個接口 
 function createOpen($properties);//內向創(chuàng)建 
 function createIntro($properties);//外向創(chuàng)建 
} 
 
class User implements userProperties{ 
 private $username; 
 private $gender; 
 private $job; 
 public function __construct($username, $gender, $job) { 
  $this->username = $username; 
  $this->gender = $gender; 
  $this->job = $job; 
 } 
 
 public function getUsername() { 
  return $this->username; 
 } 
 
 public function getGender() { 
  return $this->gender; 
 } 
 
 public function getJob() { 
  return $this->job; 
 } 
} 
 
class userFactory { 
 private $user; 
 public function __construct($properties = []) { 
  $this->user = new User($properties['username'], $properties['gender'], $properties['job']); 
 } 
 
 public function getUser() { 
  return $this->user; 
 } 
} 
 
class FactoryMan implements createUser { 
 function createOpen($properties) { 
  return new userFactory($properties); 
 } 
 
 function createIntro($properties) { 
  return new userFactory($properties); 
 } 
} 
 
class FactoryWoman implements createUser { 
 function createOpen($properties) { 
  return new userFactory($properties); 
 } 
 
 function createIntro($properties) { 
  return new userFactory($properties); 
 } 
} 
 
class clientUser { 
 static public function getClient($properties) { 
  $fac = new FactoryMan; 
  $man = $fac->createOpen($properties); 
  echo $man->getUser()->getUsername(); 
 } 
} 
 
$employers = [ 
 ['username' => 'Jack', 'gender' => 'male', 'job' => 'coder'], 
 ['username' => 'Marry', 'gender' => 'female', 'job' => 'designer'], 
 ]; 
$user = clientUser::getClient($employers[0]); 
?>

如有錯誤,請指正。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 學習php設計模式 php實現(xiàn)裝飾器模式(decorator)
  • PHP簡單裝飾器模式實現(xiàn)與用法示例
  • PHP、Python和Javascript的裝飾器模式對比
  • PHP設計模式之注冊樹模式分析
  • php簡單實現(xiàn)單態(tài)設計模式的方法分析
  • 輕松掌握php設計模式之訪問者模式
  • PHP常用的三種設計模式匯總
  • PHP設計模式之迭代器模式
  • PHP設計模式之觀察者模式實例
  • php設計模式之委托模式
  • PHP常用設計模式之委托設計模式
  • PHP設計模式之裝飾器模式實例詳解

標簽:駐馬店 阜陽 黑河 臨夏 延邊 南昌 欽州 中衛(wèi)

巨人網(wǎng)絡通訊聲明:本文標題《PHP設計模式之工廠模式詳解》,本文關鍵詞  PHP,設計模式,之,工廠,模式,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP設計模式之工廠模式詳解》相關的同類信息!
  • 本頁收集關于PHP設計模式之工廠模式詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲国产成人一区二区三区| 国产不卡在线播放| 国产精品久久久久国产精品日日| 欧美色网一区二区| 本田岬高潮一区二区三区| 精品中文字幕一区二区小辣椒| 国产精品久久久久影院亚瑟 | 日韩不卡一区二区| 1000部国产精品成人观看| 欧美成人性福生活免费看| 欧美三级中文字幕在线观看| 处破女av一区二区| 成人午夜电影久久影院| 国产美女久久久久| 国产成人综合亚洲91猫咪| 精品一区二区三区在线视频| 男女激情视频一区| 免费日本视频一区| 日产国产高清一区二区三区| 亚洲电影你懂得| 亚洲韩国一区二区三区| 亚洲国产精品自拍| 亚洲亚洲精品在线观看| 五月天精品一区二区三区| 五月天精品一区二区三区| 亚洲18色成人| 久久爱www久久做| 精品一区二区三区欧美| 国产自产视频一区二区三区| 韩国一区二区在线观看| 免费成人在线播放| 久久er精品视频| 国产成人免费在线观看不卡| 国产精品一区二区免费不卡| 成人精品免费看| av一区二区三区四区| 欧美午夜精品一区二区蜜桃| 欧美日韩久久不卡| 精品人在线二区三区| 国产亚洲欧美色| 亚洲精品国产a| 免费看日韩精品| 成人精品鲁一区一区二区| 在线看国产一区二区| 欧美一区二区三区日韩视频| 久久久综合精品| 亚洲伦理在线免费看| 日本欧美一区二区三区乱码| 国产一区二区三区久久久| 99久久精品免费看国产免费软件| 在线亚洲一区二区| 2欧美一区二区三区在线观看视频| 国产精品入口麻豆九色| 亚洲国产精品久久不卡毛片| 国产91精品在线观看| 91成人网在线| 国产欧美日韩另类一区| 一区二区三区中文字幕电影| 久久精品噜噜噜成人av农村| 91亚洲永久精品| 久久先锋资源网| 视频在线在亚洲| 99久久久久久| 2019国产精品| 性久久久久久久久| www.亚洲在线| 欧美精品一区二区在线播放| 欧美激情一区在线| 免费看黄色91| 不卡av在线免费观看| 欧美精品一区视频| 日韩精品亚洲专区| 91丨九色丨蝌蚪丨老版| 精品欧美一区二区三区精品久久 | 盗摄精品av一区二区三区| 欧美剧在线免费观看网站| 日韩午夜激情av| 亚洲中国最大av网站| 色综合天天性综合| 国产精品高潮呻吟久久| 国产成人av电影在线| 精品国产污污免费网站入口| 亚洲国产毛片aaaaa无费看 | 亚洲视频在线观看一区| 狠狠色丁香久久婷婷综合丁香| 欧美日韩一区视频| 亚洲黄色在线视频| 99免费精品视频| 国产精品婷婷午夜在线观看| 国产精品888| 久久久久久久久久久99999| 麻豆国产欧美一区二区三区| 91精品欧美久久久久久动漫| 亚洲狠狠爱一区二区三区| 欧美日韩国产一级二级| 视频一区二区欧美| 91精品免费观看| 久久97超碰色| 久久久精品免费网站| 国产成人亚洲综合a∨婷婷 | 精品国产免费人成在线观看| 久久91精品国产91久久小草| 日韩女优电影在线观看| 国产麻豆成人精品| 国产精品素人视频| 99精品视频一区二区| 亚洲精品欧美综合四区| 欧美日韩不卡一区| 精品亚洲aⅴ乱码一区二区三区| 精品剧情v国产在线观看在线| 国产在线精品一区在线观看麻豆| 在线观看91精品国产麻豆| 久久国产尿小便嘘嘘尿| 国产视频911| 91国偷自产一区二区三区观看| 亚洲va天堂va国产va久| 日韩一二三四区| 成人av免费在线播放| 亚洲综合图片区| 日韩精品专区在线| 成人中文字幕在线| 午夜国产精品影院在线观看| 精品国产乱码久久久久久夜甘婷婷| 大胆亚洲人体视频| 香港成人在线视频| 久久这里只有精品首页| 91色porny在线视频| 日韩—二三区免费观看av| 久久久久久久久久久电影| 在线亚洲人成电影网站色www| 美女视频黄a大片欧美| 国产欧美一区二区三区网站| 欧美日韩国产小视频| 岛国精品一区二区| 日韩 欧美一区二区三区| 国产精品天干天干在线综合| 欧美一二三四在线| 色综合久久久久网| 国产精品一二三区| 亚洲午夜私人影院| 国产天堂亚洲国产碰碰| 欧美成人bangbros| 成人美女视频在线观看| 狠狠网亚洲精品| 亚洲视频香蕉人妖| 日韩久久精品一区| 911国产精品| 日本韩国一区二区三区| 国产成人午夜视频| 日韩avvvv在线播放| 亚洲激情图片小说视频| 久久影院午夜片一区| 91美女蜜桃在线| 精品在线一区二区三区| 亚洲福利一二三区| 久久久久亚洲综合| 91蜜桃网址入口| 成人av网站免费| 国产91精品一区二区麻豆亚洲| 日韩福利视频导航| 天天综合色天天| 视频一区二区三区入口| 亚洲国产成人91porn| 国产欧美日韩中文久久| 欧美v国产在线一区二区三区| 91麻豆精品久久久久蜜臀 | 2024国产精品视频| 欧美刺激午夜性久久久久久久| 欧美日韩在线播放一区| 在线观看成人免费视频| 在线观看日韩av先锋影音电影院| 波多野结衣中文字幕一区二区三区| 蜜臀久久99精品久久久久久9| 国产精品欧美经典| 26uuu国产一区二区三区| 日韩一区二区三区四区| 制服丝袜中文字幕一区| 欧美日韩国产欧美日美国产精品| 欧美三级电影精品| 91精品国产综合久久香蕉麻豆| 8v天堂国产在线一区二区| 在线观看一区二区视频| 欧美日韩一区二区三区免费看| 在线电影院国产精品| 欧美大片在线观看一区| 精品国产三级电影在线观看| 国产日韩欧美精品一区| 成人免费一区二区三区在线观看| 国产精品无码永久免费888| 亚洲欧洲成人av每日更新| 亚洲六月丁香色婷婷综合久久 | 在线观看www91| 欧美日韩日日骚| 日韩一区二区三| 日韩欧美高清dvd碟片| 日韩精品影音先锋| 国产精品短视频| 青青草91视频| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩高清影院|