iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0

把不穩定的新功能放在外圍,不影響核心。

今日主題:

ADP(依賴反向原則)的意思是:
穩定的核心不應該依賴不穩定的新手功能,
反而是新手要依賴核心,這樣核心才不會被拖累。

範例故事:

想像學校的足球比賽。
校隊的老選手(核心)非常穩定,他們懂規則、技巧很好。
今天老師想讓新同學(新功能)也來參加試試看。
如果比賽全靠新同學,可能會亂掉;
但如果安排新同學在外圍,先跟著老選手踢,就算他們出錯,
核心的比賽策略還是穩定的。

在程式中的應用是什麼?

在程式設計裡,我們會把穩定的模組(像數學計算、登入系統)放在核心。
不穩定的模組(像新的 API、新的外掛功能)放在外圍,依賴核心規則。

這樣做的好處:

  • 新功能壞掉 → 只會影響外圍,不會讓核心跟著壞。
  • 核心穩定 → 程式就像球隊戰術,不會輕易被打亂。

小程式例子(JavaScript):

// 核心:穩定的計算機
class Calculator {
  add(a, b) {
    return a + b;
  }
}

// 新功能:還不太穩定的「AI 計算」
class AICalculator {
  constructor(coreCalculator) {
    this.core = coreCalculator; // 依賴核心
  }

  smartAdd(a, b) {
    // 嘗試做點花樣,但最後還是靠核心計算
    console.log("AI 嘗試計算中...");
    return this.core.add(a, b);
  }
}

const calc = new Calculator();
const aiCalc = new AICalculator(calc);

console.log(aiCalc.smartAdd(2, 3)); // 5

這樣即使 AI 部分不穩定,核心的 Calculator 還是可靠的。

小結與一個思考問題:

ADP 就像是「新手跟著老手」,確保比賽不會亂掉。
在程式裡,讓核心保持穩定,把新功能放在外圍依賴核心。

思考問題:如果你在設計一個遊戲,要加入一個還在測試的新角色,

你會讓他影響整個遊戲的規則,還是先放在外圍試試看?為什麼?


上一篇
Day 18 - SAP 抽象性:保持彈性,注意安全
下一篇
Day 20:元件回顧:積木疊起來了嗎?
系列文
Clean Architecture 無瑕的程式碼:國中生阿吉的暑期閱讀筆記24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言