Re: [問題] 有關全域變數
※ 引述《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
推
06/10 20:23, , 1F
06/10 20:23, 1F
→
06/10 20:24, , 2F
06/10 20:24, 2F
→
06/10 20:24, , 3F
06/10 20:24, 3F
→
06/10 20:25, , 4F
06/10 20:25, 4F
推
06/10 20:28, , 5F
06/10 20:28, 5F
推
06/10 22:34, , 6F
06/10 22:34, 6F
推
06/10 23:38, , 7F
06/10 23:38, 7F
→
06/10 23:40, , 8F
06/10 23:40, 8F
→
06/10 23:47, , 9F
06/10 23:47, 9F
→
06/10 23:48, , 10F
06/10 23:48, 10F
→
06/11 00:01, , 11F
06/11 00:01, 11F
→
06/11 00:09, , 12F
06/11 00:09, 12F
→
06/11 01:26, , 13F
06/11 01:26, 13F
→
06/11 01:27, , 14F
06/11 01:27, 14F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章