C++设计原则

  • 依赖倒置原则(DIP)

mainform依赖line和rect这是不对的

(会导致mainform也不稳定)

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

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

  • 开放封闭原则

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

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

  • 单一职责原则

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

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

  • Liskov替换原则

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

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

  • 接口隔离原则

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

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

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

  • 封装变化点

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

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

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

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

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

设计原则归纳提升:

1.设计习语

2.设计模式:解决复用

3.架构模式

相关推荐
txinyu的博客4 分钟前
HTTP服务实现用户级窗口限流
开发语言·c++·分布式·网络协议·http
代码村新手4 分钟前
C++-类和对象(上)
开发语言·c++
txinyu的博客15 分钟前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
mjhcsp40 分钟前
C++ 后缀数组(SA):原理、实现与应用全解析
java·开发语言·c++·后缀数组sa
hui函数41 分钟前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·pip
码农小韩1 小时前
基于Linux的C++学习——循环
linux·c语言·开发语言·c++·算法
消失的旧时光-19431 小时前
C++ 命名空间 namespace 讲透:从 std:: 到工程实践
开发语言·c++
程序员Jared1 小时前
C++11—thread库
c++·thread
linweidong1 小时前
C++ 中避免悬挂引用的企业策略有哪些?
java·jvm·c++
CoderCodingNo1 小时前
【GESP】C++五级/四级练习(双指针/数学) luogu-P1147 连续自然数和
开发语言·c++·算法