※ 引述《kalecgos0616 (.)》之銘言:
: 小弟最近在寫class時
: 其中每個的方法到底要切的多細呢?
: 仰或是不使用方法,一路top-down寫下來?
: 有時候覺得切出來的方法感覺只會用到這一次,覺得不是很恰當
: 或著下次要呼叫這隻方法時,我只需要到他部份的功能
: 多餘的地方就浪費資源了
: 有請教各位大大賜教了
幾個小原則參考一下:
1.函式提取:將程式段中重複(尤其是大量重複)的程式碼提取為函式。
2.單一職責:一個函式儘用於處理單一功能,儘可能不要一個函式多功能。
3.層次提取:像if、for、while、foreach這一類的條件迴圈,一但包到第三層
時,就要考慮將第3層,或是2、3層一起提取成函式。而不要像是:
if(){
for(){
foreach(){
while(){
}
}
}
}
此例可將foreach以下另提取成函式處理。
基本原則就是最多一個程式功能段只包「二層」為極限。超過就提取。
(偶一為之的三層是可容許的,比如第三層的程式碼只是簡單的判斷。)
4.物件的方法:其實就是動作、功能。他的設計原則和函式的原則是相通的。但最大的
差異性是寫函式有時會考慮到globals,也就是全域變數的問題。基本上我個人幾乎都不
使用全域變數。如果是全域使用而不變動的資料我習慣用常數處理。
但是在物件導向中並沒有這種困擾,因為物件的屬性在物件中就是全域的。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.136.156