当前位置:首页>java>【C++编程哲学妙喻】- 最小知识原则:不和陌生人说话

【C++编程哲学妙喻】- 最小知识原则:不和陌生人说话

  • 2026-10-21 13:27:13
【C++编程哲学妙喻】- 最小知识原则:不和陌生人说话
你的函数应该像一个'社恐'的程序员。它只跟自己的直接朋友交谈,绝不打听朋友的朋友的私事。知道得越少,依赖就越少...

最小知识原则本质是"只和直接朋友打交道",好司机不该直接操控引擎和轮子,而应通过汽车提供的drive接口操作。这样系统各部分耦合度降低,一处改动不会牵连全局。知道得越少,反而让系统越健壮,这正是优秀架构的智慧所在。

【代码演示】

#include <iostream>class Engine {public:    void start() { std::cout << "引擎启动\n"; }};class Wheel {public:    void rotate() { std::cout << "轮子转动\n"; }};class Dashboard {public:    void showSpeed() { std::cout << "显示速度\n"; }};// ❌ 违反最小知识原则:和陌生人说话class BadDriver {    Engine* engine;    Wheel* wheels[4];     Dashboard* dashboard;public:    void driveBadly() {        // 知道太多内部细节!        engine->start();        for (auto wheel : wheels) {            wheel->rotate();  // 直接操作轮子        }        dashboard->showSpeed();  // 直接操作仪表盘        std::cout << "我知道太多细节了!\n";    }};// ✅ 遵守最小知识原则:社恐程序员class GoodDriver {    class Car {  // 汽车封装内部细节        Engine engine;        Wheel wheels[4];        Dashboard dashboard;    public:        void drive() {  // 提供简单接口            engine.start();            for (auto& wheel : wheels) {                wheel.rotate();            }            dashboard.showSpeed();        }    };    Car car;public:    void driveSafely() {        car.drive();  // 只和朋友(Car)说话        std::cout << "我只需要知道:开车!\n";    }};int main() {    std::cout << "=== 最小知识原则 ===\n";    std::cout << "❌ 坏司机:\n";    BadDriver bad;    // bad.driveBadly();    std::cout << "✅ 好司机:\n";    GoodDriver good;    good.driveSafely();    std::cout << "知道得越少,耦合越少,系统越稳定!\n";}
AI大师Karpathy最新访谈:AGI还需十年
不惑之年,我重拾经典
“万事俱备”的陷阱,会毁掉你的可能性
年龄只是个数字?别再自欺欺人了
从代码小白到架构与管理的蜕变
研发转管理会失去能力护城河?
迈向架构师与技术领袖【程序员的蜕变之路】
工欲善其事,必先利其器
一个普通IT人的20年奋斗:从小白到编程教育布道者
AI什么都会了,我们还要学习吗?
Andrej Karpathy最新演讲:AI时代的软件
小朋友学编程早,真能“赢在起跑线”?
普通人如何应对AI带来的变革
抱歉,只能为30人开放!AI+真人护航学编程
AI时代为何还要学习编程?
为简化编程入门,我费尽思量

最新文章

随机文章