內聚性
內聚性越高,通常會有強健性、可靠性、可複用性、易懂性等特點
單一功能原則
模組中的功能只是剛好放在一起
模組內的各部份沒有關聯性
「總之可以用」
code:kotlin
fun main() {
val data = getData() // 取得資料
println("Hello World") // 輸出
calcPrimeNumber(10) // 計算質數
}
模組內的功能在邏輯上類似
例如判斷 flag 執行不同的動作
code:kotlin
fun sample(isA: Boolean) {
if (isA) {
sampleA()
} else {
sampleB()
}
}
模組內的功能在執行時間點上類似
即使替換執行順序也能正常運作
例如初始化處理、UI 要前景化時的處理等等
code:kotlin
fun initApp(isA: Boolean) {
initConfig()
initLogger()
initDB()
}
模組內的功能必須依照固定順序執行
例如確認存取權限後修改檔案
code:kotlin
fun outputFile(file: File) {
checkPermission()
writeFile(file)
}
模組內的功能處理相同的資料
code:kotlin
fun changeAll(data: Data) {
changeA(data)
changeB(data)
changeC(data)
}
模組內的功能整合了一部分的輸入與一部分的輸出
例如取得檔案後做轉換並儲存
code:kotlin
fun sample() {
val file = getFile()
val transformed = transform(file)
saveFile(transformed)
}
模組內的功能處理單一有明確定義的任務
例如計算兩點之間的距離
code:kotlin
fun calcLength(a: Point, b: Point): Int {
val dx = a.x b.x
val dy = a.y b.y
val length = sqrt(dx * dx + dy * dy)
return length.toInt()
}