Single Responsibility Principle
單一職責原則
01你是不是遇到這個 / THE SYMPTOM
我有個類別(或函式)名字叫 Manager、Helper、Utils,裡面塞了十幾個不相干的方法,每次需求一變這個檔案就要被改,改完還常常牽連到別的功能出 bug。
↑ 如果你點頭了,你要的關鍵字就是 Single Responsibility Principle。
02這是什麼 / DEFINITION
物件導向 SOLID 原則的第一條:一個類別或模組應該只有「一個改變它的理由」,也就是只負責一件明確的職責,不要把多種不相關的責任綁在同一個類別上。
03什麼時候用 / WHEN TO USE
當某個類別/函式因為太多種不同原因被一改再改、或你很難用一句話講清楚「它到底是幹嘛的」時,就該依此原則拆分。
04怎麼跟 AI 說 / HOW TO ASK
直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:
這個 UserManager 同時管登入、發信、產報表,違反單一職責原則(single responsibility principle),請依職責把它拆成 AuthService、MailService、ReportService 三個類別。
05常見坑 / WATCH OUT
⚠ 「一個職責」常被誤解成「一個方法」而拆過細。判準是「改變的理由」:會因為同一種需求一起改的東西,就屬於同一個職責。它和關注點分離很像,但 SRP 特指針對單一類別/模組的層級。
06相關的詞 / RELATED