2011-07-03 81 views
1

你喜歡哪,爲什麼:6抽象,1層結構

典型

if (this.sun.hidden === true && 
    this.moon.visible === false) { 
    print "its daytime" 
} 

可能不必要的抽象

if (isSunHidden() === true && 
    isMoonVisible() === false) { 
    print "its daytime" 
} 

刪除一些語法

if (isSunHidden() && 
    isMoonVisible()) { 
    print "its daytime" 
} 

我喜歡這一個是非常可讀的,但還需要一個硬編碼的「白天」串

if (timeOfDay() === "daytime") { 
    print "its daytime" 
} 

這也很容易閱讀

if (isItDaytime()) { 
    print "its daytime" 
} 

混合料印刷用一天的時間來檢查,不好

printDaytime(); 

不管怎麼說,這在很大程度上是個人偏好,但也有一些優於邏輯的理由相互偏好,我有興趣聽到這些原因 - 或者如果增加了相同的構造,可能還有其他變體興。

謝謝!

回答

3

你的選擇中,我更喜歡:

if (isItDaytime()) { 
    print "its daytime" 
} 

這其中也並不可怕:

if (timeOfDay() === "daytime") { 
    print "its daytime" 
} 

...雖然我會用,而不是文字字符串枚舉或類似的結構,如:

if (timeOfDay() === TimeOfDay.DAY_TIME) { 
    print "its daytime" 
}