当前位置:首页>java>【C++编程哲学妙喻】- 单一职责:一个工具,一件正事

【C++编程哲学妙喻】- 单一职责:一个工具,一件正事

  • 2026-10-21 13:27:41
【C++编程哲学妙喻】- 单一职责:一个工具,一件正事
一个类应该像专业工具箱里的一件工具。螺丝刀只负责拧螺丝,锤子只负责敲击。它们分工明确,变化互不干扰,改动互不影响,这才是高质量代码的基石。
瑞士军刀式怪胎设计试图让一件工具具备多种功能,但是做哪件事情都勉强,都做不好,而且改动某个功能可能还会波及到其它功能,使得代码难以理解、难以维护、难以扩展。

【代码演示】

#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";}
AI大师Karpathy最新访谈:AGI还需十年
不惑之年,我重拾经典
“万事俱备”的陷阱,会毁掉你的可能性
年龄只是个数字?别再自欺欺人了
从代码小白到架构与管理的蜕变
研发转管理会失去能力护城河?
迈向架构师与技术领袖【程序员的蜕变之路】
工欲善其事,必先利其器
一个普通IT人的20年奋斗:从小白到编程教育布道者
AI什么都会了,我们还要学习吗?
Andrej Karpathy最新演讲:AI时代的软件
小朋友学编程早,真能“赢在起跑线”?
普通人如何应对AI带来的变革
抱歉,只能为30人开放!AI+真人护航学编程
AI时代为何还要学习编程?
为简化编程入门,我费尽思量

最新文章

随机文章