看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《OppOops (Oops)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : C : 問題(Question): : 常常會有些建議: 少用全域變數. : 1.那是否我去宣告一個function 專門來return static variable就比較好呢? : 2.如果用這樣的方式, : 在外部使用function 內部的static array 會不會有不好的事情?? function return static variable 就是 global variable,沒有差別。 不用懷疑,把要用到的東西傳進去就對了, 如果參數很多,那就需要分析參數的性質, 把能群組在一起的參數寫成一個 struct 或是 class 包裝起來,合成一個參數, 分析的結果可以有效減少參數的數目, 分析的過程可以協助理解程式的架構。 參數的包裝,不只可以一層,也可以很多層, 參數的包裝,不只可以包含「值」,還可以包含「動作」, 可以嘗試把根據不同的參數值採取不同動作的方法, 改成把動作直接寫在 class 的 virtual function, 然後直接呼叫參數的 member function。 不知不覺你就作到了 dependency injection T_T 你的程式碼不僅充分發揮了物件導向的優點, 而且還兼具有高度 testability 的特色, 太厲害了,太厲害了。 -- To iterate is human, to recurse, divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 182.235.170.158
littleshan:我很久以前就對於許多API都使用context這個參數而好奇 06/10 20:23
littleshan:後來才了解到這是為了避免全域變數的設計 06/10 20:24
littleshan:四人幫的Design pattern根本就不該放什麼singleton 06/10 20:24
littleshan:應該放context pattern才對 06/10 20:25
VictorTom:推:) 06/10 20:28
linjack:singleton 亂用害死人+1 ..... 06/10 22:34
Ebergies:放 singleton 純粹只是因為他好用吧... 06/10 23:38
james732:有好用嗎?我覺得它只是更複雜化的全域變數 XD 06/10 23:40
Ebergies:你看這麼多人喜歡用 global variable 就知道多好用了吧XD 06/10 23:47
james732:可是我覺得singleton還複雜化了 orz 06/10 23:48
diabloevagto:singleton重點不是在global variable... 06/11 00:01
azureblaze:可是很多人其實只要global的部份卻用了singleton 06/11 00:09
loveme00835:第一段是 "Preserve Whole Object" 第二段是 "Proxy 06/11 01:26
loveme00835:Pattern", 如果能用靜態多型相依性會更低 06/11 01:27