問題我有範圍和封裝的通用問題。採取兩種方案:有關範圍和封裝
方案1:
// a global application level constant
public static const IS_DEMO_MODE:Boolean = false;
... // somewhere deep in the codebase
private function _myFunction():void
{
if (IS_DEMO_MODE == true) {
// If Demo Mode do not allow this function to complete
return;
}
else {
// Function behaves normally
// Code ...
}
}
方案2:
// a global application level constant
public static const IS_DEMO_MODE:Boolean = false;
... // somewhere deep in the codebase
// call the function and pass in the constant
_myFunction(IS_DEMO_MODE);
private function _myFunction(isDemoMode:Boolean):void
{
if (isDemoMode == true) {
// If Demo Mode do not allow this function to complete
return;
}
else {
// Function behaves normally
// Code ...
}
}
從功能上來講這兩個代碼片段做同樣的事是完全相同。我想了解編碼風格的更精細的一點,以及爲什麼一種方式可能比另一種方式更受歡迎?從封裝的角度來看,情況2似乎更好。但是場景1更加簡單,因爲條件中的布爾值只來自一個地方,即全局常量。您不必擔心函數調用,即在正確接收參數時可能傳遞錯誤的值。但情景2看起來很有價值,因爲您可以移除常量的依賴關係,並且可以使該函數的行爲更加動態。對此有何想法?我還有什麼其他的折扣嗎?
相同的概念和應用對象和類以及問題。但我只是以簡單的代碼示例的函數的形式來舉例說明。
感謝您的答覆亞歷克斯。這是有道理的。 – 2009-09-11 18:00:34