园林公司网站模板,rap做词网站,南京seo培训,重庆省建设厅网站1.为什么学习设计模式#xff1f;
学习设计模式的原因#xff1a;
应对面试中的设计模式相关问题#xff1b;写出高质量代码#xff0c;告别让人吐槽的烂代码#xff1b;提高复杂代码的设计和开发能力让读源码、学习框架爱事半功倍#xff1b;为职场发展铺垫。
设计模…1.为什么学习设计模式
学习设计模式的原因
应对面试中的设计模式相关问题写出高质量代码告别让人吐槽的烂代码提高复杂代码的设计和开发能力让读源码、学习框架爱事半功倍为职场发展铺垫。
设计模式作为一门与编码、开发有着直接关系的基础知识是你现在就要开始学习的。早点学习以后的项目就都可以拿来锻炼每写一行代码都是对内功的利用和加深是可以收益整个事业生涯的一个技能。
2.如何写出高质量代码如何评价代码质量的好坏
2.1 如何评价代码质量的高低
代码质量的评价有很强的主观性描述代码质量的词汇也有很多比如可读性、可维护性、灵活、优雅、简洁等这些是从不同的维度去评价代码质量的。它们之间相互关联并不是独立的比如代码的可读性好、可扩展性好就意味着代码的可维护性好。代码质量的高低是一个综合各种因素得到的结论。所以不能通过单一的维度去评价一段代码的好坏。
2.2 常量的评价标准有哪几个
一般常用到的几个评价代码质量的标准是
可维护性可读性可扩展性灵活性简洁性可复用性可测试性。
其中可维护性、可读性、可扩展性又是使用最多、最重要的三个评价标准。
2.3 如何写出高质量的代码
要写出高质量的代码我们就要掌握一些更加细化、更加能落地的编程方法论这就包含面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等这就是后面学习的重点。
3.面向对象、设计原则、设计模式、编码规范、重构的关系
面向对象
目前主流的编程风格有三种分别是面向过程、面向对象和函数式编程。面向对象这种编程风格又是其中最主流的。
关于面向对象你需要掌握下面这 7 大知识点
面向对象的四大特性封装、抽象、继承、多态。面向对象编码与面向过程的区别和联系面向对象分析、面向对象设计和面向对象编程接口和抽象类的区别以及各自的应用场景基于接口而非实现类编程的设计思想多用组合少用继承的设计思想面向过程的贫血模式和面向对象的充血模型
设计原则
设计原则是知道我们代码设计的一些经验总结。有如下几种常用的设计原则
SOLID 原则 - SRP 单一职责SOLID 原则 - OCP 开闭原则SOLID 原则 - LSP 里氏替换原则SOLID 原则 - ISP 接口隔离原则SOLID 原则 - DIP 依赖倒置原则DRY 原则、KISS 原则、YAGNI 原则、LOD 原则
设计模式
设计模式是针对软件开发中经常遇到的一些涉及问题总结出来的一套解决方案或设计思想。设计模式的学习难点是了解他们都能解决哪些问题掌握典型的应用常见并懂得不过度应用。
设计模式一共有 23 种可分为三大类创建型、结构性和行为型。对于这 23 种设计模式的学习我们要有侧重点因为有些模式比较常用有些模式是很少被用到。对于常用的设计模式我们要多花时间掌握对于不常用的设计模式只需要稍微了解即可。
1. 创建型
常用的有
单例模式工厂模式工厂方法和抽象工厂建造者模式
不常用的有
原型模式
2. 结构型
常用的有
代理模式桥接模式装饰者模式适配器模式
不常用的有
门面模式组合模式享元模式
3.行为型
常用的有
观察者模式模板模式策略模式职责链模式迭代器模式状态模式
不常用的有
访问者模式备忘录模式命令模式解释器模式中介模式
编程规范
编程规范主要解决代码的可读性问题。编程规范相对于设计原则、设计模式更加具体、更加侧重代码细节。即使你对设计原则不熟悉、对设计模式不了解但你最起码要掌握基本的编码规范比如给变量、类、函数命名、如何写代码注释、函数不宜过长、参数不能过多等等。
对于编码规范有很多书籍以及讲得很好了比如《重构》《代码大全》《代码整洁之道》等。而且每条编码规范都非常简单、非常明确比较偏向记忆只需要照着来就可以了。
持续地小重构依赖的理论基础主要就是编程规范。
除了编码规范后面还会介绍一些代码的坏味道让你知道什么样的代码是不符合规范的应如何优化。
参照编码规范可以写出可读性好的代码参照代码的坏味道你可以找出代码存在的可读性问题。
代码重构
在软件开发中只要软件在不停地迭代就没有一劳永逸的设计。随着需求的变化代码的不停堆砌原有的设计必定会存在这样那样的问题。针对这些问题我们就需要进行代码重构。重构是软件开发过程中非常重要的环节持续重构是保持代码质量不下降的有效手段能有效避免代码腐化到无可救药的地步。
而重构就是根据前面提到的面向对象设计思想、设计原则、设计模式、编码规范来进行的。实际上设计思想、设计原则、设计模式一个最重要的应用常见就是在重构的时候。
虽然设计模式可以提高代码的可扩展性但过度不恰当的使用也会增加代码的复杂度影响代码的可读性。在开发初期除非必须我们一定不要过度设计应用复杂的设计模式。而是当代码出现问题的时候我们再针对问题应用原则和模式进行重构。这样就能有效避免前期的过度设计。
对于重构你需要掌握以下几个知识点
重构的目的why、对象what、时机when、方法how。保证重构不出错的技术手段单元测试和代码的可测试性。两种不同规模的重构大重构大规模高层次和小重构小规模、低层次。
五者之间的联系
关于面向对象、设计原则、设计模式、编程规范和重构这五者的关系我们梳理下
面向对象编程因为其丰富的特性封装、抽象、继承、多态可以实现很多复杂的设计思路是很多设计原则、设计模式等编码实现的基础。设计原则是指导我们代码设计的一些经验总结对于某些场景下是否应该应用某种设计模式具有指导意义。比如“开闭原则”是很多设计模式策略、模板等的指导原则。设计模式是针对软件开发中经常遇到的一些设计问题总结出来的一套解决方案或者设计思路。应用设计模式的主要目的是提供代码的可扩展性。从抽象程度上来讲设计原则比设计模式更抽象。设计模式更加具体、更加可执行。编程规范主要解决的是代码的可读性问题。编码规范相对于设计原则、设计模式更加具体、更加偏重代码细节、更加能落地。持续地小重构依赖的理论基础主要就是编程规范。重构作为保持代码质量不下降的有效手段利用的就是面向对象、设计原则、设计模式、编码规范这些理论。
实际上面向对象、设计原则、设计模式、编程规范、代码重构这五者都是保持或提高代码质量的方法本质上都是服务于编写高质量代码这一件事的。