日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
你是否了解PHP設(shè)計模式

設(shè)計模式給我?guī)Я撕芏嗪锰?,在JAVA中有20多種的設(shè)計模式,而在PHP中也有五種常見的設(shè)計模式,下面我們就詳細的看看PHP設(shè)計模式中的工廠模式吧。PHP設(shè)計模式 一書將設(shè)計模式引入軟件社區(qū),該書的作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design(俗稱 “四人幫”)。所介紹的設(shè)計模式背后的核心概念非常簡單。

#T#經(jīng)過多年的軟件開發(fā)實踐,Gamma 等人發(fā)現(xiàn)了某些具有固定設(shè)計的模式,就像建筑師設(shè)計房子和建筑物一樣,可以為浴室的位置或廚房的構(gòu)造方式開發(fā)模板。使用這些模板或者說設(shè)計模式意味著可以更快地設(shè)計更好的建筑物。同樣的概念也適用于軟件。設(shè)計模式不僅代表著更快開發(fā)健壯軟件的有用方法,而且還提供了以友好的術(shù)語封裝大型理念的方法。例如,您可以說您正在編寫一個提供松散耦合的消息傳遞系統(tǒng),也可以說你正在編寫名稱為觀察者 的模式。

用較小的示例展示模式的價值是非常困難的。這往往有些大材小用的意味,因為模式實際上是在大型代碼庫中發(fā)揮作用的。本文不展示大型應(yīng)用程序,所以您需要思索的是在您自己的大型應(yīng)用程序中應(yīng)用示例原理的方法 —— 而不是本文演示的代碼本身。這不是說您不應(yīng)該在小應(yīng)用程序中使用模式。很多良好的應(yīng)用程序都以小應(yīng)用程序為起點,逐漸發(fā)展到大型應(yīng)用程序,所以沒有理由不以此類扎實的編碼實踐為基礎(chǔ)。

既然您已經(jīng)了解了PHP設(shè)計模式以及它們的有用之處,現(xiàn)在我們來看看 PHP V5 的五種常用模式。

工廠模式

最初在設(shè)計模式 一書中,許多設(shè)計模式都鼓勵使用松散耦合。要理解這個概念,讓我們最好談一下許多開發(fā)人員從事大型系統(tǒng)的艱苦歷程。在更改一個代碼片段時,就會發(fā)生問題,系統(tǒng)其他部分 —— 您曾認為完全不相關(guān)的部分中也有可能出現(xiàn)級聯(lián)破壞。

該問題在于緊密耦合 。系統(tǒng)某個部分中的函數(shù)和類嚴重依賴于系統(tǒng)的其他部分中函數(shù)和類的行為和結(jié)構(gòu)。您需要一組模式,使這些類能夠相互通信,但不希望將它們緊密綁定在一起,以避免出現(xiàn)聯(lián)鎖。

在大型系統(tǒng)中,許多代碼依賴于少數(shù)幾個關(guān)鍵類。需要更改這些類時,可能會出現(xiàn)困難。例如,假設(shè)您有一個從文件讀取的 User 類。您希望將其更改為從數(shù)據(jù)庫讀取的其他類,但是,所有的代碼都引用從文件讀取的原始類。這時候,使用工廠模式會很方便。

工廠模式 是一種類,它具有為您創(chuàng)建對象的某些方法。您可以使用工廠類創(chuàng)建對象,而不直接使用 new。這樣,如果您想要更改所創(chuàng)建的對象類型,只需更改該工廠即可。使用該工廠的所有代碼會自動更改。

清單顯示工廠類的一個示列。等式的服務(wù)器端包括兩個部分:數(shù)據(jù)庫和一組 PHP 頁面,這些頁面允許您添加反饋、請求反饋列表并獲取與特定反饋相關(guān)的文章。

清單. Factory1.php

 
 
  1. interface IUser  
  2. {  
  3. function getName();  
  4. }  
  5.  
  6. class User implements IUser  
  7. {  
  8. public function __construct( $id ) { }  
  9.  
  10. public function getName()  
  11. {  
  12. return "Jack";  
  13. }  
  14. }  
  15.  
  16. class UserFactory  
  17. {  
  18. public static function Create( $id )  
  19. {  
  20. return new User( $id );  
  21. }  
  22. }  
  23.  
  24. $uo = UserFactory::Create( 1 );  
  25. echo( $uo->getName()."\n" );  
  26. ?> 

網(wǎng)頁題目:你是否了解PHP設(shè)計模式
文章位置:http://www.5511xx.com/article/cdepchh.html