[A].总结11.设计模式最后总结

声明:本栏目的 [A] 系列的学习笔记,学习对象为 B 站授课视频 C++设计模式(李建忠),参考教材为《设计模式:可复用面向对象软件的基础》。本栏目 [A] 系列文章中的图件和笔记,部份来自上述资源。

一个目标
  • 管理变化,提高复用
两种手段
  • 分解
  • 抽象
八大原则

在这里插入图片描述

重构技法

在这里插入图片描述

从封装变化角度对模式分类
  • 李建忠教学,将 gof 23种设计模式 分类。
    在这里插入图片描述
C++ 对象模型

在这里插入图片描述

  • A 继承 B,在内存模型中如图,B的所有的成员放在A的前面,如果B的实例作为A的成员,其内存模型也是一样。所以,类组合应该将B的指针作为A 的成员,如图中的 pb , pb不但可以指向B,也可以指向B的子类。 所有的设计模式都殊途同归,通过用指针指向一个多态对象来展现出灵活性,这是松耦合结构的对象模型基础。
关注变化点和稳定点
  • 对于全都变化和全都稳定的软件,设计模式毫无意义。
  • 每个设计模式都有其缺点,这个缺点其实就是其针对的稳定点,如果稳定点发生变化,那么原本用的设计模式就不再适用,这时往往可以更换使用其他的设计模式。
什么时候不用模式
  • 代码可读性很差时。此时需要先提高可读性,然后再考虑设计模式。
  • 需求理解还很浅时。应该先考虑好需求,可以先不用任何设计模式,先做好第一版第二版,后续更新迭代时再使用设计模式。
  • 变化没有显现时。此时无法把握稳定点和变化点,容易做无用功。
  • 不是系统的关键依赖点。优先考虑在系统的关键模块使用设计模式。
  • 项目没有复用价值时。比如有些外包项目,做完交付后再也不管了可以不用设计模式。
  • 项目将要发布时。首先要保证软件的逻辑正确性,保证产品的可用性。
经验之谈
  • 不要为模式而模式
  • 关注抽象类 和 接口
  • 理清变化点和稳定点
  • 审视依赖关系
  • 要有 Framework 和 Application 的区隔思维
  • 良好的设计是演化的结果,不要追求一步到位。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值