C++设计原则

  • 依赖倒置原则(DIP)

mainform依赖line和rect这是不对的

(会导致mainform也不稳定)

应该转化为都依赖于抽象:

mainform依赖于shape,line和rect依赖shape

  • 开放封闭原则

对扩展是开放的,对更改是封闭的

想着增加东西,而不是修改原有的。

  • 单一职责原则

    一个类仅有一个引起他变化的原因。

    变化就是类的责任,一个类一个责任。

  • Liskov替换原则

    子类必须能够替换他的父类

    不然就是和父类没关系的。

  • 接口隔离原则

    接口就应该小,而且完备,只做有必要的进public

  • 优先使用对象组合,而非类继承

    以前特别推崇类继承,但是这个是错误的,汽车可以继承于交通工具。这个是可以的

  • 封装变化点

    封装的两侧,一侧变化,一侧稳定

  • 针对接口编程,而不是针对实现。

    客户只需要知道接口就可以了,

    高内聚,松耦合。例如在mainform就弄三个数据结构存东西,不太行。

接口标准化就是最高的追求。

设计原则归纳提升:

1.设计习语

2.设计模式:解决复用

3.架构模式

相关推荐
qq_199886879 分钟前
第7板块·第3节:CUTLASS 的 GEMM 实现与优化策略
c++·人工智能·gpu算力·cuda
hetao173383712 分钟前
2026-09-17 hetao1733837 的刷题记录
c++·算法
shada1 小时前
Boost.Process v2 在旧内核上报 `assign: Bad file descriptor`
c++
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
朝朝辞暮i3 小时前
C++第 2 课
c++
代码中介商3 小时前
C++ 预约系统实战(三):服务端实现——libevent 事件驱动与业务路由
c++·json·c/s
布莱克6054 小时前
C++中的内存分区详解
c++
All for pursuit.4 小时前
【链表-9】146.LRU缓存
数据结构·c++·算法·leetcode
j7~5 小时前
【C++微服务项目开发脚手架】(接口篇一)gflags + gtest + spdlog 接口学习笔记
c++·学习·gtest·项目开发·spdlog·gflags·c++项目微服务开发脚手架
星期八不上发条6 小时前
智能指针是什么?使用场景,循环引用解决办法,面试回答
开发语言·c++·stl