最小知识原则本质是"只和直接朋友打交道",好司机不该直接操控引擎和轮子,而应通过汽车提供的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";}