107.08.06 關於 code reuse 的問題,投票囉

最近寫程式發現設計頗為重要
也通常是花最多時間的部分
在 code reuse (程式碼重用) 部分我就發現有幾種寫法
也不知道怎麼查相關的資料
這好像是比較偏向 coding style,所以並沒有正解 吧
總之就來統計個 (雖然應該很少人才是 QuQ
Picture from MonkeyUser.com

code reuse 最簡易的就是把會重複的部分寫成函式
以我最近正在寫的為例,我盡量簡化@@,也會提供詳盡的程式碼區塊
總共三種版本,每個版本各有三個函式


v1

把廣義的函式定義好
在狹義的函式中呼叫廣義的函式
e.g. 詳細
insert_at(index, data) {
    /* 定義 */
}

prepend(data) {
    insert_at(0, data)
}

append(data) {
    insert_at(this.length, data)
}

v2

各個狹義的函式皆定義好
在廣義函式中依照狀態去選擇該呼叫的狹義函式
e.g. 詳細
insert_at(index, data) {
    if (index == 0) {
        prepend(data)
    } else if (index == this.length) {
        append(data)
    } else {
        /* 其他定義 */
    }
}

prepend(data) {
    /* 定義 */
}

append(data) {
    /* 定義 */
}

v3

不使用 code reuse
全部重寫定義,不呼叫其他函式
e.g. 詳細
insert_at(index, data) {
    /* 定義 */
}

prepend(data) {
    /* 定義 */
}

append(data) {
    /* 定義 */
}

投票地點\傳送門/




參考資料:
DRY code vs. WET code
Don't repeat yourself - wiki

沒有留言:

張貼留言

^ Top