赞
踩
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1.分解
即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。分解是人们面对复杂性时的常见做法
2.抽象
由于不能掌握全部的复杂对象,从而选择忽视它的非本质细节而去处理泛化和理想化的对象模型。抽象是处理复杂性的更高层次的解决方案,也是通用的技术
软件设计的目标:复用
变化是复用的天敌,面向对象设计的最大优势在于 “抵御变化” !
依赖倒置原则(DIP)
开放封闭原则(OCP)
单一职责原则(SRP)
Liskov 替换原则(LSP)
接口隔离原则(ISP)
优先使用对象组合,而不是类继承
针对接口编程,而不是针对实现编程
产业强盛的标志:接口标准化!
将设计原则提升为设计经验
从目的来看:
从范围来看
从封装变化角度进行分类
推荐图书:《重构----改善既有代码的设计》、《重构与模式(Refactoring to PaPatterns)》
现代软件发展带来的第一个结果是“框架与应用程序的划分” ,“组件协作” 模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式
动机
定义
定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method 使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤
结构
要点总结
动机
定义
定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展、子类化)
结构
要点总结
动机
定义
定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都能得到通知并自动更新
结构
要点总结
在软件组件的设计中,如果责任划分不清晰,使得继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任
典型模式
动机
定义
动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator 模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数)
结构
要点总结
如果看到一个类继承自一个父类,同时组合了一个相同父类的成员对象,可以怀疑使用了 Decorator 设计模式
动机
定义
将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化
结构
要点总结
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
原因),复用性比较差。Bridge 模式是比多继承方案更好的解决方法
[外链图片转存中…(img-FVMPqUlw-1715675477674)]
[外链图片转存中…(img-O7FvUR1V-1715675477674)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。