国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP核心技術(shù)與最佳實(shí)踐(第一章 面向?qū)ο笏枷氲暮诵母拍睿?

dreamGong / 2580人閱讀

摘要:現(xiàn)代的面向?qū)ο蟮乃枷氩粡?qiáng)調(diào)為真實(shí)世界建模變得更加理性化一些,把目標(biāo)放在解耦上。各種語言中的多態(tài)多態(tài)確切的含義是同一類的對(duì)象收到相同消息時(shí),會(huì)得到不同的結(jié)果。小結(jié)本章主要介紹面向?qū)ο笏枷氲某绦虻慕M成元素類和對(duì)象。

第一章 面向?qū)ο笏枷氲暮诵母拍?/b>

代碼:

class object
{
    public $name;
    public $gender;
    public function say(){
        echo $this->name."is".$this->gender;
    }
}
$student = new object();
$student->name = "Tom";
$student->gender = "male";
$student->say();

//由于PHP 的對(duì)象是用數(shù)組來模擬的,因此把對(duì)象轉(zhuǎn)換為數(shù)組,就能查看這個(gè)對(duì)象的所有屬性了
var_dump($student);
var_dump((array)$student);//(array)對(duì)象類型轉(zhuǎn)換成數(shù)組,打印屬性值
var_dump(array($student));
print_r((array)$student);
echo "
"; //對(duì)象序列化 $str = serialize($student); echo $str."
"; file_put_contents("store.txt",$str); //反序列化,取出這個(gè)對(duì)象 $str = file_get_contents("store.txt"); $student = unserialize($str); $student->say(); 結(jié)果: Tomismale object(object)[1] public "name" => string "Tom" (length=3) public "gender" => string "male" (length=4) array (size=2) "name" => string "Tom" (length=3) "gender" => string "male" (length=4) array (size=1) 0 => object(object)[1] public "name" => string "Tom" (length=3) public "gender" => string "male" (length=4) Array ( [name] => Tom [gender] => male ) O:6:"object":2:{s:4:"name";s:3:"Tom";s:6:"gender";s:4:"male";} Tomismale

1.3 繼承與多態(tài)

面向?qū)ο蟮膬?yōu)勢(shì)在于類的復(fù)用繼承與多態(tài)都是對(duì)類進(jìn)行復(fù)用,它們一個(gè)是類級(jí)別的復(fù)用,一個(gè)是方法級(jí)別的復(fù)用提到繼承必提組合,二者有何異同?PHP到底有沒有多態(tài)?若沒有,則為什么沒有?有的話,和其他語言中

在繼承中,用parent指代父類,用self指代自身。使用“::”運(yùn)算符(范圍解析操作符)調(diào)用父類的方法。
通過一些總結(jié),得出了繼承是一種“是、像”的關(guān)系,而組合是一種“需要”的關(guān)系。利用這條規(guī)律,就可以很簡(jiǎn)單地判斷出父親與兒子應(yīng)該是繼承關(guān)系,父親與家庭應(yīng)該是組合關(guān)系。還可以從另外一個(gè)角度看,組合偏重整體與局部的關(guān)系,而繼承偏重父與子的關(guān)系。

????耦合是一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量,也就是不同模塊之間的依賴關(guān)系。
低耦合指模塊與模塊之間,盡可能地使模塊間獨(dú)立存在;模塊與模塊之間的接口盡量少而簡(jiǎn)單。現(xiàn)代的面向?qū)ο蟮乃枷氩粡?qiáng)調(diào)為真實(shí)世界建模,變得更加理性化一些,把目標(biāo)放在解耦上。
解耦是要解除模塊與模塊之間的依賴。
按照這個(gè)思想,繼承與組合二者語義上難于區(qū)分,在二者均可使用的情況下,更傾向于使用組合。為什么呢?繼承存在什么問題呢?
????1)繼承破壞封裝性。
比如,定義鳥類為父類,具有羽毛屬性和飛翔方法,其子類天鵝、鴨子、鴕鳥等繼承鳥這個(gè)類。顯然,鴨子和鴕鳥不需要飛翔這個(gè)方法,但作為子類,它們卻可以無區(qū)別地使用飛翔這個(gè)方法,顯然破壞了類的封裝性。而組合,從語義上來說,要優(yōu)于繼承。
????2)繼承是緊耦合的。
繼承使得子類和父類捆綁在一起。組合僅通過唯一接口和外部進(jìn)行通信,耦合度低于繼承。
????3)繼承擴(kuò)展復(fù)雜。
隨著繼承層數(shù)的增加和子類的增加,將涉及大量方法重寫。使用組合,可以根據(jù)類型約束,實(shí)現(xiàn)動(dòng)態(tài)組合,減少代碼。
????4)不恰當(dāng)?shù)厥褂美^承可能違反現(xiàn)實(shí)世界中的邏輯。

1.3.2 各種語言中的多態(tài)

????多態(tài)確切的含義是:同一類的對(duì)象收到相同消息時(shí),會(huì)得到不同的結(jié)果。而這個(gè)消息是不可預(yù)測(cè)的。多態(tài),顧名思義,就是多種狀態(tài),也就是多種結(jié)果。
????區(qū)別是否是多態(tài)的關(guān)鍵在于看對(duì)象是否屬于同一類型。如果把它們看做同一種類型,調(diào)用相同的函數(shù),返回了不同的結(jié)果,那么它就是多態(tài);否則,不能稱其為多態(tài)。由此可見,弱類型的PHP里多態(tài)和傳統(tǒng)強(qiáng)類型語言里的多態(tài)在實(shí)現(xiàn)和概念上是有一些區(qū)別的,而且弱類型語言實(shí)現(xiàn)起多態(tài)來會(huì)更簡(jiǎn)單,更靈活。
????本節(jié)解決了什么是多態(tài),什么不是多態(tài)的問題。至于多態(tài)是怎么實(shí)現(xiàn)的,各種語言的策略是不一樣的。但是,最終的實(shí)現(xiàn)無非就是查表和判斷。總結(jié)如下:
????多態(tài)指同一類對(duì)象在運(yùn)行時(shí)的具體化。
????PHP語言是弱類型的,實(shí)現(xiàn)多態(tài)更簡(jiǎn)單、更靈活。
????類型轉(zhuǎn)換不是多態(tài)。
????PHP中父類和子類看做“繼父”和“繼子”關(guān)系,它們存在繼承關(guān)系,但不存在血緣關(guān)系。 因此子類無法向上轉(zhuǎn)型為父類,從而失去多態(tài)最典型的特征。
多態(tài)的本質(zhì)就是if…else,只不過實(shí)現(xiàn)的層級(jí)不同。

1.4 面向接口編程

狹義的接口,即interface關(guān)鍵字。廣義的接口可以是任何一個(gè)對(duì)外提供服務(wù)的出口,比如提供數(shù)據(jù)傳輸?shù)腢SB接口、淘寶網(wǎng)對(duì)其他網(wǎng)站開放的支付寶接口。

接口作為一種規(guī)范和契約存在。作為規(guī)范,接口應(yīng)該保證可用性;作為契約,接口應(yīng)該保證可控性。
接口只是一個(gè)聲明,一旦使用interface關(guān)鍵字,就應(yīng)該實(shí)現(xiàn)它。可以由程序員實(shí)現(xiàn)(外部接口),也可以由系統(tǒng)實(shí)現(xiàn)(內(nèi)部接口)。接口本身什么都不做,但是它可以告訴我們它能做什么。
PHP中的接口存在兩個(gè)不足,一是沒有契約限制,二是缺少足夠多的內(nèi)部接口。
接口其實(shí)很簡(jiǎn)單,但是接口的各種應(yīng)用很靈活,設(shè)計(jì)模式中也有很大一部分是圍繞接口展開的。

1.5 反射

面向?qū)ο缶幊讨袑?duì)象被賦予了自省的能力,而這個(gè)自省的過程就是反射。
反射,直觀理解就是根據(jù)到達(dá)地找到出發(fā)地和來源。比方說,我給你一個(gè)光禿禿的對(duì)象,我可以僅僅通過這個(gè)對(duì)象就能知道它所屬的類、擁有哪些方法。
反射指在PHP運(yùn)行狀態(tài)中,擴(kuò)展分析PHP程序,導(dǎo)出或提取出關(guān)于類、方法、屬性、參數(shù)等的詳細(xì)信息,包括注釋。這種動(dòng)態(tài)獲取信息以及動(dòng)態(tài)調(diào)用對(duì)象方法的功能稱為反射API。

小結(jié)

本章主要介紹面向?qū)ο笏枷氲某绦虻慕M成元素——類和對(duì)象。類是一個(gè)動(dòng)作和屬性的模板,對(duì)象是數(shù)據(jù)的集合。結(jié)合PHP自身實(shí)際情況,著重講述PHP里面向?qū)ο蟮囊恍┍容^模糊的知識(shí)點(diǎn),包括魔術(shù)方法、接口、多態(tài)、類的復(fù)用、反射、異常機(jī)制等。接口是一種類型,從接口的實(shí)現(xiàn)講述接口是怎么實(shí)現(xiàn)“即插即用”的。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/22893.html

相關(guān)文章

  • 學(xué)習(xí)Java必讀10本書籍

    摘要:學(xué)習(xí)編程的本最佳書籍這些書涵蓋了各個(gè)領(lǐng)域,包括核心基礎(chǔ)知識(shí),集合框架,多線程和并發(fā),內(nèi)部和性能調(diào)優(yōu),設(shè)計(jì)模式等。擅長(zhǎng)解釋錯(cuò)誤及錯(cuò)誤的原因以及如何解決簡(jiǎn)而言之,這是學(xué)習(xí)中并發(fā)和多線程的最佳書籍之一。 showImg(https://segmentfault.com/img/remote/1460000018913016); 來源 | 愿碼(ChainDesk.CN)內(nèi)容編輯 愿碼Slo...

    masturbator 評(píng)論0 收藏0
  • 全棧是概念,興趣亦為追求(全棧開發(fā)者)

    摘要:耐得住寂寞,才能等得到花開慢慢積累自己的知識(shí),不斷疊加,全面優(yōu)化,無論在哪個(gè)領(lǐng)域都可以有你的一席之地,即為有志者事竟成,破釜沉舟,百二秦關(guān)終屬楚也祝我們能向未來發(fā)展的開發(fā)者們苦心人天不負(fù),臥薪嘗膽,三千越甲可吞吳。 我們今天來了聊一聊一個(gè)話題——全棧開發(fā) 作為一個(gè)程序員,不管是Java還是C...

    lbool 評(píng)論0 收藏0
  • 區(qū)塊鏈開發(fā)中使用最流行編程語言

    摘要:我們目前正處于一個(gè)新興的區(qū)塊鏈開發(fā)行業(yè)中。,一種在以太坊開發(fā)人員中流行的新的簡(jiǎn)單編程語言,因?yàn)樗怯糜陂_發(fā)以太坊智能合約的語言。它是全球至少萬開發(fā)人員使用的世界上最流行的編程語言之一。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開發(fā)的詳解。 我們目前正處于一個(gè)新興的區(qū)塊鏈開發(fā)行業(yè)中。區(qū)塊鏈技術(shù)處于初期階段,然而這種顛覆性技術(shù)已經(jīng)成功地風(fēng)靡全球,并且最近經(jīng)歷了一場(chǎng)與眾不同的繁榮。由于許多...

    2shou 評(píng)論0 收藏0
  • PHPer書單

    摘要:想提升自己,還得多看書多看書多看書下面是我收集到的一些程序員應(yīng)該看得書單及在線教程,自己也沒有全部看完。共勉吧當(dāng)然,如果你有好的書想分享給大家的或者覺得書單不合理,可以去通過進(jìn)行提交。講師溫銘,軟件基金會(huì)主席,最佳實(shí)踐作者。 想提升自己,還得多看書!多看書!多看書!下面是我收集到的一些PHP程序員應(yīng)該看得書單及在線教程,自己也沒有全部看完。共勉吧!當(dāng)然,如果你有好的書想分享給大家的或者...

    jimhs 評(píng)論0 收藏0
  • Java開發(fā)區(qū)塊鏈三大sdk庫(kù)

    摘要:是企業(yè)與區(qū)塊鏈相遇的地方。的框架旨在成為開發(fā)區(qū)塊鏈解決方案的支柱。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開發(fā)的詳解。 如果你想將區(qū)塊鏈合并到一個(gè)Java項(xiàng)目中,現(xiàn)在我們來看看就是這個(gè)細(xì)分領(lǐng)域中三個(gè)最大的OSS玩家。 好的伙計(jì)們,我們都聽說過比特幣,以太坊或其他加密貨幣,其中有一些時(shí)髦的名字圍繞著我們常見的新聞,但我們作為Java開發(fā)人員知道如何輕松地與這些區(qū)塊鏈技術(shù)進(jìn)行交互嗎?以...

    iKcamp 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<