作者HuangJC (吹笛牧童)
看板PHP
標題Re: [請益] php的學習 (物件導向)
時間Sat Jan 24 20:16:53 2009
※ 引述《pkwbim (多采多姿)》之銘言:
: 要學 PHP 裡的 OOP 時建議
: 1. 搞清楚為什麼要用 OOP
: 2. 去用一套 framework 看看別人怎麼設計,要怎麼使用。
: 3. 等經驗夠了,自己試著設計,一開始當然會做出一堆的廢 class
: 要知道怎樣的 class 是合適的,沒有練過幾個案子,光看書恐怕很難有心得。
: 我們在使用 PHP 時若要採用 OOP 的話,在實務上有幾個考量:
: 1. 專案的本質
: 程式用來解決問題的(若要說是來賺錢的,我也不反對),
: 所以在採用某項技術時都要問一下採用了這技術對於解決問題有幫助嗎?
讓我想到一篇嘲笑複雜語法的文章 :P
Hello World
這幾乎是所有程序語言的第一課,快速寫出成品證明環境架設完畢
而且就連打字打不快(看鍵盤打)的朋友也可以在半小時內寫好,建立自信心
這很重要,因為隔行如隔山
無論自己認為多簡單,當你要當一個領航員,你一定要端出最簡單的一套菜
最近我在學 PayPal work with PHP,發現它也有,它的 Sample 已經會動
在說明網頁裏它說:我們希望你成功,所以會提供所有協助
(當然啦 XD,PayPal 是架設購物網站的,我成功就代表他可以抽成,所以愈簡單學愈好)
這就是最原始的 Hello World,沒有任何架構
#include <stdio.h>
void main()
{
printf("Hello World!");
}
然後用物件導向
#include <stdio.h>
class CHello
{
public:
void SayHello(){printf("Hello World!")}
}
void main()
{
CHello HelloObj;
HelloObj.SayHello();
}
到這裏已經讓人快瘋了,覺得學架構的人是笨蛋 XD
想不到接著還有 FrameWork 要登場
程式就不寫了,我大概描述一下
Document-View 架構的玩家堅持 Document 才能放資料,而 View 專管展現
所以 "Hello World!" 這個字串必需放在 Document 中
而 View 必需先背上一堆基本負擔才能和 Document 運作
void CView::OnShow()
{
CDoc *pDoc=GetDocument();
// 這就我說的基本負擔,不然 V 怎麼找得到 C ?
// pDoc->szHelloString, 可以這樣取出想顯示的字串
}
D-V 是長這樣,PHP 不流行耶,是 MVC
哇,那不就有更多錯縱複雜的 Link function 要先搞懂 :P
才能悠遊在 M-V-C 之間
這樣寫 HelloWorld 應該會瘋掉 :P
不過這其實和開聯結大卡車載美眉兜風一樣,是選錯了工具,所以才會瘋掉
如果美眉體重40,一輛捷安特就載走了
如果美眉愛速度,那就換 50CC 小摩托車
愛抱得緊緊的感覺,換重機
穿美美蓬篷裙並且吹漂亮髮型,換轎車
愛隨處過夜看星星,換休旅車
愛吹冷氣看電視又愛旅行...恭喜,去買輛(棟?)霍爾的移動城堡 XD
或許有美眉真的要開雙聯結大卡車才能載出來約會..
有..國際巨星,全球巡迴演唱時包一台貨櫃班機 :P
人家一個貨櫃的家當擺下來是舞台,燈光,工作人員,第二個貨櫃是替換衣物
不過瑪丹娜用得到的家當應該不必拿來約鄰家女孩
基本上鄰家女孩連車都不用,只要她爸爸不在(頂多再加一架樓梯)就行了 :P
爸爸:鄰家的網管,Administrator
樓梯:破解工具
我不是搞笑,我說真的 :P
;;
所以我相信有很多愈來愈好的協定
但如果就問題來回答,我只會好好描述捷安特
因為這是馬上載出去約會的最低負擔
但不可能負擔臨時起意想要車床的願望 XD
(在腳踏車上做,對象是小龍女嗎?一條繩子就可以 XD)
其實物件導向裏並沒說沒有程序導向,只是相對強調物件
程序導向也有視覺化工具
資料->工具1->工具2->結果
這看起來和流程圖很像,我必需把資料用 工具1 處理完,再用 工具2 處理完
然後就得到我要的結果
把工具攤開畫圖,工具就是物件
所以物件內部就有物件導向的 FU~
但如果物件太過簡單,沒有聚合的特性,那整個流程你只看得到程序導向
就以這點來說,哪些 function 需要聚合成為一個 object
經常會引起爭議及不斷 recode
(如果我有一堆不同的 Hello 要說,包括偵測 User 語系而自動切換中文或日文韓文
我的確有可能用 class)
說到底用適當大小的車去承載你的慾望,開起來才又快又穩
愈大的車加速減速都慢,但未來擴充性什麼都有
愈小的車一踩就發,但也沒有太大的未來性
如果學不會什麼,很有可能是因為用不到什麼..
又不是每個人都追到瑪丹娜..
(她老了,只是我不舉..不是,是我舉不出新的例子)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.179.152
推 kusoayan :太經典了…幽默 但是 深入淺出 0.0! 01/24 20:41
推 j87b0003 :雖然覺得物件是門趨勢,但覺得還是適才適用吧XD" 01/24 21:55
推 roga :推小龍女的繩子 ~"~ 01/25 00:38
你推繩子,剩下的我推 :P
推 JYHuang :所以捷安特騎的好,也是可以超聯結車的車(誤 01/25 02:46
N年前我面試工作,面試官連C都不許我用,要求用組合語言
結構大了,速度就慢
捷安特的形容用在小系統並不為過;不過別找我寫..我寫不出來 XD
http://tw.youtube.com/watch?v=wFQyb98U4Qw&feature=related
XD
推 j87b0003 :或許中途殺出了一個手刀人,也是可以超車(誤 01/25 02:48
這個梗太難懂了...
※ 編輯: HuangJC 來自: 61.59.179.152 (01/26 04:19)