面向对象,设计原则,设计模式,编程规范,重构之间的关系 设计模式
主流的编程范式,和编程风格有三种,分别是面向过程,面向对象,函数式编程。面向对象这种风格又是其中最主流的。现在比较流行的编程语言大部分都是面向对象的编程语言。大部分项目也都是基于面向对象风格开发的 面型对象的特性: 继承,封装,多态,抽象。是很多设计原则和设计模式的基础。
所以在专栏开始的时候我们会星系讲解面型对象编程的相关知识。为学习后边的内容做铺垫对于这部分内容,需要掌握下面的7大知识点
面型对象的四大特征: 继承,封装,多态,抽象。
面向对象和面向过程编程的区别和联系。
面向队形分析,面向对象设计,面向对象编程。
接口类和抽象类的区别以及各自的应用场景。
基于接口而非实现的编码设计思想
多用组合少用继承的设计思想
面型过程的贫血模型和,面向对象的充血模型。
设计原则
设计原则是指导我们代码设计的一些经验总结。设计原则这块而知识有一个非常大的特点,就是这些原则听起来都香蕉抽象。定义描述都比较模糊,不同的人会有不同的解读。 所以淡出的取记忆定义,对于编程设计能力的提高,意义并不大。对于每一种设计原则,我们要知道他们设计的初衷,有那些应用场景,只有这样,我们才能在项目总恰当的应用这些原则。
单一原则
开闭原则
里氏替换原则
接口隔离原则
依赖倒置原则
设计模式
设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套方案和设计思路,大部分设计模式要解决的是代码的可扩展的问题,设计模式型对于设计原则来说,没有那么抽象,而且大部分也并不复杂。这一块的学习难点是了解他们能解决那些问题,掌握典型的应用场景,并且懂得不要过度应用。
经典的设计模式有23种。随着编程语言的演进,一些设计模式过时(Singleton)了甚至成为了反模式(Iterator),另一些新的模式的诞生(Monostate).
23种设计模式可以分为三大类: 创建型,结构型,行为型。对于这些设计模式,我们要有侧重点,因为有些是比较常用的,有的很少被用到。 对于不常用的设计模式,我们稍微了解一下即可。
1. 创建型
常用的有单例模式,工厂模式,工厂方法,抽象工厂。创建者模式
不常用的有原型模式。
2. 结构型
代理模式,桥接模式,装饰模式,适配器模式
不常用的门面模式,组合模式,享元模式。
3. 行为型
常用的有观察者模式,模板模式,策略模式,责任链模式,迭代器模式,状态模式
不常用的偶访问者模式,备忘录模式,命名模式,解释器模式,中介者模式
编程规范
编程规范主要是解决代码的可读性问题。编码规范相对于设计原则,设计模式,更加具体,更加派那种代码的细节。即便你对设计原则,设计模式不了解。但你起码要掌握基本的编程规范,比如如何给变量类函数命名,如何些注解,函数,参数不易过长。
代码的重构
在软件开发种,只要软件在不停的迭代,就没有一劳永逸的设计。随着需求的变化,代码的不停的堆砌,原有的设计必定会存在这样那样的问题,针对这些问题,我们就选哟进行代码的重构。重构是软件开发种非常重要的一个原则,持续重构是保持代码质量不下降的有效手段。能有效的避免代码腐化待无可救药的地步。
而重构得工具就是我们前面罗列那些面对对象得设计思想,设计原则,设计模式。编码规范。实际上,设计思想,设计模式,设计原则,一个最重要得引用场景就是在重构得时候。我们前面讲过虽然设计模式可以提高代码得可扩展性,但是不要过度使用。会增加代码得复杂性,影响代码得可读性。在开发初期,除非特别必要,我们一点过不要过度设计,应用复杂得设计模式,而当代码出现问题得时候,我们在针对问题,应用原则和模式进行重构,这样就能有效得避免前期得过度设计。
对于重构这部分内容,你需要掌握以下几个知识点
重构得目的,对象,时机,方法
保证从狗不出错得技术手段,单元测试 和代码得可测试性。
两种不同得重构,大重构和小重构。
五者之间得联系
面向对象因为有丰富得特性(继承,封装,多态,抽象) 可以实现很多复杂得设计思路,是很多设计原原则,设计模式得基础。
设计原则,是指导我们代码设计一些经验总结,对于某些场景,是否应该应用某种设计模式,具有知道意义。比如开闭原则,是很多实际模式得知道思想。
设计模式是针对软件开发种遇到得一些设计问题,总结出来得一套解决方案或者设计思路。 应用设计模式主要目的是提高了代码的饿可扩展性,从抽象程度上讲,设计原则比设计模式更抽象,设计原则,更加具体,更加可行性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2021-02-26 HttpClient parameter 和body 传输同时进行