【代码演示】
#include <iostream>#include <string>// ✅ 好的设计:单一职责class Screwdriver {public: void tightenScrew() { std::cout << "🔧 拧紧螺丝\n"; }};class Hammer {public: void hitNail() { std::cout << "🔨 敲打钉子\n"; }};class BottleOpener {public: void openBottle() { std::cout << "🍾 打开瓶盖\n"; }};// ❌ 坏的设计:瑞士军刀式怪胎class SwissArmyKnife {public: void tightenScrew() { std::cout << "勉强拧螺丝...\n"; } void hitNail() { std::cout << "费力敲钉子...\n"; } void openBottle() { std::cout << "危险开瓶盖...\n"; } void cutPaper() { std::cout << "钝刀割纸...\n"; } // 更多不相关功能...};// 🛠️ 专业工具箱:组合单一职责工具class Toolbox {private: Screwdriver screwdriver; Hammer hammer; BottleOpener opener;public: void doWoodwork() { screwdriver.tightenScrew(); hammer.hitNail(); } void haveParty() { opener.openBottle(); }};int main() { std::cout << "=== 单一职责原则 ===\n"; std::cout << "✅ 专业工具组合:\n"; Toolbox professional; professional.doWoodwork(); std::cout << "\n❌ 瑞士军刀怪胎:\n"; SwissArmyKnife awkward; awkward.tightenScrew(); awkward.hitNail(); awkward.openBottle(); std::cout << "\n每个工具只做一件事,但做好一件事!\n";}