您的位置 首页 知识分享

C++ 函数的艺术:设计原则与 SOLID 原则,架构健康之道

摘要:++ 函数设计遵循的原则包括单一职责、开放-封闭、里氏替换和迪米特法则。这些原则构成了 solid 原则…

摘要:++ 函数设计遵循的原则包括单一职责、开放-封闭、里氏替换和迪米特法则。这些原则构成了 solid 原则:单一职责 (s): 函数只应执行一个明确目标。开放-封闭 (o): 函数应可扩展而不需修改源代码。里氏替换 (l): 派生类可替换基类而不影响客户端代码。接口隔离 (i): 客户端仅依赖所需的接口。依赖反转 (d): 函数依赖抽象接口而非具体实现。

C++ 函数的艺术:设计原则与 SOLID 原则,架构健康之道

C++ 函数的艺术:设计原则与 SOLID 原则,架构健康之道

设计原则

单一职责原则(SRP):函数应只有一个明确定义的目标。这使得代码更容易维护、测试和理解。

开放-封闭原则(OCP):函数的行为应该可以通过扩展来修改,而无需修改其源代码。

里氏替换原则(LSP):派生类应该能够无缝地替代其基类,而不会破坏客户端代码。

立即学习“”;

迪米特法则(LoD):函数只应知道所需的最小信息,并应避免与不相关的模块直接交互。

SOLID 原则

上述设计原则为 SOLID 原则奠定了基础:

单一职责 (S):函数应执行单一明确的目标。

开闭 (O):函数应对扩展开放,对修改关闭。

里氏替换 (L):派生类应能够替换其基类而不会破坏客户端代码。

接口隔离 (I):客户端应仅依赖于它们所需的接口,而不是大而全的接口。

依赖反转 (D):函数不应直接依赖其他函数,而是应通过抽象接口依赖。

实战案例

SRP:

// 获得用户的姓名 std::string get_user_name() {   // 获取用户输入   return prompt_user("Enter your name: "); }
登录后复制

此函数遵循 SRP,因为它只执行一个任务:获取用户姓名。

OCP:

// Abstract Shape 类 class Shape { public:   virtual float area() const = 0; };  // Rectangle 类(派生类) class Rectangle : public Shape { public:   float width, height;    float area() const override {     return width * height;   } };
登录后复制

通过继承 Shape 抽象类,Rectangle 可以扩展其功能,而无需修改 Shape 的源代码。

LSP:

// Player 类(基类) class Player { public:   virtual void move() = 0; };  // HumanPlayer 类(派生类) class HumanPlayer : public Player { public:   void move() override {     // 人类玩家的移动逻辑   } };
登录后复制

HumanPlayer 可以无缝替代 Player,因为它们都实现了相同的 move() 方法。

LoD:

// 订单处理函数 void process_order(Order order) {   // 用所需数据更新数据库   update_database(order);    // 通过事件通知其他模块   send_order_processed_event(); }
登录后复制

此函数仅与处理订单相关的数据交互,避免了与其他不相关的模块直接交互。

D:

// 依赖倒置示例 class Service { public:   virtual void do_something() const = 0; };  class Client { public:   void use_service(Service& service) {     service.do_something();   } };
登录后复制

Client 类通过接口依赖于 Service 类,而无需直接依赖其具体实现。

以上就是C++ 函数的艺术:设计原则与 SOLID 原则,架构健康之道的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/1910.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部