无码色色,久久久久久免费精品喷水,美女把胸罩解开让男生摸,欧美一级在线观看视频,色亚洲天堂,色综合天天综合给合国产

咨詢電話:023-88959644    24小時(shí)服務(wù)熱線:400-023-8809
NEWS CENTER ·
新聞動(dòng)態(tài)
關(guān)注中技互聯(lián) 關(guān)注前沿

PHP 工廠模式

發(fā)表日期:2016-04-27    文章編輯:重慶網(wǎng)站建設(shè)小編    瀏覽次數(shù):332    標(biāo)簽:

  可能一直都以為設(shè)計(jì)模式只是為Java架構(gòu)師準(zhǔn)備的,實(shí)際上,設(shè)計(jì)模式對于每個(gè)人都非常有用。為什么說它們在PHP應(yīng)用程序中也非常有用?
  接下來讓我來解釋這些問題。
  設(shè)計(jì)模式不僅代表著更快開發(fā)健壯軟件的有用方法,而且還提供了以友好的術(shù)語封裝大型理念的方法。用較小的示例展示設(shè)計(jì)模式的價(jià)值與功用是非常困難的。這往往有些大材小用的意味,因?yàn)槟J綄?shí)際上是在大型代碼庫中發(fā)揮作用的。
  既然已經(jīng)了解了設(shè)計(jì)模式以及它們的有用之處,現(xiàn)在我們來看看PHP5的幾種常用模式。
  一、工廠模式(Factory Pattern)
  工廠模式主要是為創(chuàng)建對象提供過渡接口,以便將創(chuàng)建對象的具體過程屏蔽隔離起來,達(dá)到提高靈活性的目的。(JAVA中工廠模式分為:簡單工廠模式、工廠方法模式、抽象工廠模式)
  工廠就是負(fù)責(zé)生成對象的類或方法。工廠模式解決了當(dāng)代碼關(guān)注于抽象類型時(shí)如何創(chuàng)建對象實(shí)例的問題。
  在最初的設(shè)計(jì)模式一書中,許多設(shè)計(jì)模式都鼓勵(lì)使用松散耦合。如何理解這個(gè)概念?在項(xiàng)目開發(fā)中更改一個(gè)代碼片段時(shí),就會(huì)發(fā)生問 題,而且往往認(rèn)為完全不相關(guān)的部分也可能出現(xiàn)級(jí)聯(lián)破壞。該問題在于緊密耦合。如果類之間有非常強(qiáng)的依賴性,那么這樣的系統(tǒng)就很難維護(hù),因?yàn)橄到y(tǒng)里的一個(gè)改 動(dòng)會(huì)引起一連串的相關(guān)改動(dòng)。所以我們需要一組模式使這些類之間能夠相互通信,但不希望它們緊密綁定在一起,以避免出現(xiàn)聯(lián)鎖反應(yīng)(嚴(yán)格意義上講是叫解耦)。
  在大型系統(tǒng)中,許多代碼依賴于少數(shù)幾個(gè)關(guān)鍵類。需要更改這些類時(shí),可能會(huì)出現(xiàn)困難。例如,假設(shè)您有一個(gè)從文件讀取的User類,您希望將其更改為從數(shù)據(jù)庫讀取的其他類,但是,所有的代碼都引用從文件讀取的原始類,這時(shí)候,使用工廠模式會(huì)很方便。
 
舉例說明:
<?php
   abstract class IUser { //抽象產(chǎn)品角色
       abstract function getName();
   }
   class User extends IUser { //具體產(chǎn)品角色
       public function getName() {
           return 'Jack';  
       }
   }
   class UserFactory { //工廠類角色
       static public function create() {
           return new User(); //返回實(shí)例
       }
   }
   $uo = UserFactory::create();
   echo $uo->getName();
?>
  在簡單工廠模式中,一個(gè)工廠類處于對產(chǎn)品實(shí)例化調(diào)用的中心位置上,它決定哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化,如同一個(gè)交通警察站在來往的車輛流中,決定放行哪一個(gè)方向的車輛前行。
 
工廠模式的三種角色:
  1.工廠角色(Creator):這是本模式的核心,它負(fù)責(zé)實(shí)現(xiàn)創(chuàng)建所有實(shí)例的內(nèi)部邏輯。工廠類可以被外界直接調(diào)用,創(chuàng)建所需的產(chǎn)品對象。
  2.抽象產(chǎn)品角色(Product):工廠模式所創(chuàng)建的所有對象的父類。它負(fù)責(zé)描述所有實(shí)例所共有的公共接口。(一般由接口或抽象類來實(shí)現(xiàn))。
  3.具體產(chǎn)品角色(Concrete Product):是工廠模式創(chuàng)建的目標(biāo),所有創(chuàng)建的對象都是充當(dāng)這個(gè)角色的某個(gè)具體類的實(shí)例。(由一個(gè)具體類實(shí)現(xiàn))
 
工廠模式的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
  1. 簡單實(shí)用
  2. 利于軟件體系結(jié)構(gòu)優(yōu)化
缺點(diǎn):
  1. 違反高內(nèi)聚責(zé)任分配原則
  2. 模塊功能容易蔓延,不利于系統(tǒng)維護(hù)
  有時(shí)此類模式在規(guī)模較小的環(huán)境中似乎有點(diǎn)大材小用,不過,最好還是學(xué)習(xí)這種扎實(shí)的編碼形式,以便應(yīng)用于任意規(guī)模的項(xiàng)目中。
  本文由重慶網(wǎng)站建設(shè)-中技互聯(lián):www.tmsmall666.cn
如沒特殊注明,文章均為中技互聯(lián)原創(chuàng),轉(zhuǎn)載請注明來自www.tmsmall666.cn
相關(guān)新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429號(hào)

  • qq客服
  • 公眾號(hào)
  • 手機(jī)版
  • 新浪微博