五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 避免OOP的形式,POP的思想

避免OOP的形式,POP的思想

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):326    更新時(shí)間:2009-09-28 09:24   參與評(píng)論
好久沒(méi)發(fā)技術(shù)性文章了,今天在21PHP里看到有位兄弟發(fā)了這貼子,轉(zhuǎn)了過(guò)來(lái).對(duì)加強(qiáng)OOP的學(xué)習(xí)有些用
----------------------------------------------------------
避免OOP的形式,POP的思想
隨著PHP對(duì)OOP(面向?qū)ο缶幊?支持的增強(qiáng)以及程序設(shè)計(jì)思想的發(fā)展,越來(lái)越多的PHP程序員走進(jìn)了OOP的世界.通過(guò)簡(jiǎn)單的學(xué)習(xí),大多數(shù)程序員都能

快速的掌握OOP編程的基本技能.程序員們所寫的代碼里class,new等字符串也越來(lái)越多.但是作為程序員的你,是否陷入了一種OO形式,PO思想的

編程陷阱呢?
作為POP時(shí)代的程序員,為了實(shí)現(xiàn)計(jì)算一件房子的所有門的價(jià)格,他們會(huì)寫這樣一個(gè)函數(shù).
代碼:
/******************************************
函數(shù):priceOfHouseDoor($num,$price)
功能:計(jì)算所有的門的價(jià)格總和
參數(shù):$num門的數(shù)量,$price每扇門的價(jià)格
備注:surfchen@http://www.yubeinet.com/
******************************************/
functionpriceHouseDoor($num,$price)
{
return$num*$price;
}
echopriceHouseDoor(2,5);//輸出價(jià)格
或者干脆來(lái)個(gè)更過(guò)程的:
代碼:
$doors=2;//門數(shù)量
$price=5;//每扇門的價(jià)格
echo$doors*$price;//輸出價(jià)格

這是典型的POP.當(dāng)了解了OOP后,很多人可能會(huì)改變實(shí)現(xiàn)這個(gè)功能的代碼.或許,程序員們會(huì)這么寫:
代碼:
classhouse
{
/******************************************
函數(shù):getDoorPrice($num,$price)
功能:計(jì)算所有的門的價(jià)格總和
參數(shù):$num門的數(shù)量,$price每扇門的價(jià)格
備注:surfchen@http://www.yubeinet.com/
******************************************/
functiongetDoorPrice($num,$price)
{
return$num*$price;
}
}
$house=newhouse;
echo$house->getDoorPrice(2,5);//輸出價(jià)格
我們一下子就看出來(lái),這段代碼用到了OOP的代表--類和實(shí)例化.那么,這就是面向?qū)ο缶幊塘藛?
我再仔細(xì)一看,發(fā)現(xiàn)這個(gè)類其實(shí)只不過(guò)是上面的priceOfHouseDoor($num,$price)函數(shù)的面向?qū)ο笮问?

嗯,現(xiàn)在我們先探討一下到底什么才叫面向?qū)ο缶幊?我的理解是:面向?qū)ο缶幊逃袃蓚€(gè)核心內(nèi)容.一是類,二是實(shí)例.類是對(duì)一類事物的抽象,而實(shí)

例是這一類事物中的個(gè)體.而實(shí)例的屬性(值)和方法(函數(shù)),則分別是這個(gè)個(gè)體的具體內(nèi)容和動(dòng)作.
我們?cè)賮?lái)看看上面的這個(gè)house類.它有一個(gè)方法,getDoorPrice($num,$price),引入了兩個(gè)參數(shù).一個(gè)是房子的門的數(shù)量,一個(gè)是房子門價(jià).我們

發(fā)現(xiàn),當(dāng)我們使用這個(gè)方法時(shí),這兩個(gè)值是臨時(shí)構(gòu)建的,并沒(méi)有與房子形成任何的聯(lián)系.在實(shí)際生活中,一個(gè)房子里的門與房子無(wú)任何聯(lián)系,這是不

可以理解的...正如我們所知道的,OOP其實(shí)是我們真實(shí)世界的一個(gè)縮影.所以,OOP中的房子和房子的門無(wú)任何聯(lián)系,也是不可理解的,是非OO的思

維.
那么,我們應(yīng)該如何使用真正的OO來(lái)實(shí)現(xiàn)以上功能呢?請(qǐng)看以下代碼:
代碼:
classhouse
{
var$doors;//門的數(shù)量
var$pricePerDoors;//每扇門的價(jià)格
functionsetNumOfDoors($num){$this->doors=$num;}//設(shè)定門數(shù)量
functionsetPricePerDoor($price){$this->pricePerDoors=$price;}//設(shè)定每扇門的價(jià)格
/*************\
*獲得門的價(jià)格*
\*************/
functiongetDoorPrice()
{
return($this->doors)*($this->pricePerDoors);
}
}
$house=newhouse;
$house->setNumOfDoors(2);//設(shè)定門數(shù)量
$house->setPricePerDoor(5);//設(shè)定每扇門的價(jià)格
echo$house->getDoorPrice();//輸出
我們很明顯地看到,以上代碼的門的數(shù)量和價(jià)格房子已經(jīng)結(jié)合在了一起.這才是真正的面向?qū)ο?
你不覺(jué)得嗎?^_^
轉(zhuǎn)載:http://www.mscto.com/PHP/2009022886968.html

如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (326人查看,0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)