偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

你是否了解PHP設(shè)計模式

開發(fā) 后端
PHP設(shè)計模式不僅代表著更快開發(fā)健壯軟件的有用方法,而且還提供了以友好的術(shù)語封裝大型理念的方法,文章有詳細(xì)的介紹。

設(shè)計模式給我?guī)Я撕芏嗪锰?,在JAVA中有20多種的設(shè)計模式,而在PHP中也有五種常見的設(shè)計模式,下面我們就詳細(xì)的看看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)其他部分 —— 您曾認(rèn)為完全不相關(guān)的部分中也有可能出現(xiàn)級聯(lián)破壞。

該問題在于緊密耦合 。系統(tǒng)某個部分中的函數(shù)和類嚴(yán)重依賴于系統(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. <?php 
  2. interface IUser  
  3. {  
  4. function getName();  
  5. }  
  6.  
  7. class User implements IUser  
  8. {  
  9. public function __construct( $id ) { }  
  10.  
  11. public function getName()  
  12. {  
  13. return "Jack";  
  14. }  
  15. }  
  16.  
  17. class UserFactory  
  18. {  
  19. public static function Create( $id )  
  20. {  
  21. return new User( $id );  
  22. }  
  23. }  
  24.  
  25. $uo = UserFactory::Create( 1 );  
  26. echo( $uo->getName()."\n" );  
  27. ?> 
責(zé)任編輯:田樹 來源: it168
相關(guān)推薦

2025-05-12 07:43:14

SpringMVC設(shè)計模式代碼

2023-03-03 13:30:18

設(shè)計模式編程語言

2009-11-17 09:31:06

Oracle Dual

2021-12-09 07:47:58

Flink 提交模式

2009-11-18 13:15:06

Oracle觸發(fā)器

2009-11-20 17:10:43

Oracle B樹索引

2009-12-02 18:04:35

SUSE Applia

2009-11-17 17:11:32

Oracle空閑數(shù)據(jù)塊

2018-10-07 06:30:40

代碼設(shè)計模式面向?qū)ο笤瓌t

2010-03-25 08:52:30

PHP設(shè)計模式代理模式

2010-04-19 09:30:00

工廠模式PHP設(shè)計模式

2010-04-13 08:54:28

PHP設(shè)計模式命令模式

2009-11-02 09:43:01

VB.NET構(gòu)造函數(shù)

2010-04-08 09:27:04

PHP設(shè)計模式結(jié)構(gòu)模式

2010-04-21 08:38:18

解釋器模式PHP設(shè)計模式

2010-04-01 09:10:03

PHP設(shè)計模式責(zé)任鏈模式

2010-04-29 08:53:11

PHP迭代器模式

2023-10-07 00:14:53

2023-07-10 09:27:36

分層架構(gòu)服務(wù)架構(gòu)

2009-02-20 08:52:35

DLP數(shù)據(jù)分析
點贊
收藏

51CTO技術(shù)棧公眾號