前言
真正进入程序员的行业是从20年读研开始,进入计算机专业,零零碎碎写代码也写了两年了,但总感觉写代码的能力停留在很低级的水平。很多代码都是写到哪算哪,从来没有深入的思考,怎么样让代码变的更加优美以及健壮,所以一直在查找资料,学习别人的代码。但碎片化的学习不能让自己的代码能力有实质性的提升,总处于瞎写的阶段,因此,准备系统,深入的学习一下设计模式。整个专栏都是基于极客时间中王争老师的设计模式之美进行学习的,如果在这里感觉我总结的不到位的同学,可以去深入的学习一下王争老师的完整版课程。
好的代码包括哪些因素
要写好一份好的代码,离不开我们常见的几种标准和原则,这些东西平时可能我们都会当八股问去背诵,但真正去了解他产生的原因以及怎么使用,才算真正的理解其背后的原理,才能学以致用,提升我们的代码能力。(这里只是简单的阐述,后续会详细的学习)
- 面向对象
面向对象编程是我们很多Java程序员必备的能力之一,而面向对象的特性也是我们产生设计模式的基础条件之一:封装,抽象,继承,多态。真正的理解这些特性以及他们所能给我们带来的便利,并在我们写代码之前深入的思考怎么应用,才能让我们的代码更加的优美。 - 设计原则
前人在写代码的过程中,给我们总结的经验,我们统称为设计原则,灵活的运用这些原则可以让我们的代码变得更加健壮。
SOLID原则 - SRP 单一职责原则
SOLID原则 - OCP 开闭原则
SOLID原则 - LSP 里氏替换原则
SOLID原则 - ISP 接口隔离原则
SOLID原则 - DIP 依赖倒置原则
DRY原则,KISS原则,YANGNI原则,LOD法则 - 设计模式
设计模式就是对面向对象和设计原则的整合以及实现了,通过对设计模式的学习,我们可以针对不同的场景,进行不同模式的选择来设计我们代码的整体框架。这也是我们学习的重点。23种设计模式总共可以分为三类。
1.创建型:
常用的:单例模式,工厂模式(工厂方法和抽象方法),建造者模式
不常用的:原型模式
2.结构型
常用的:代理模式,桥接模式,装饰者模式,适配器模式
不常用的:门面模式,组合模式,享元模式
3.行为型
常用的:观察者模式,模板模式,策略模式,职责链模式,迭代器模式,状态模式
不常用的:访问者模式,备忘录模式,命令模式,解释器模式,中介模式
代码架构的设计
在我们平时学习工作中,如果是单纯的写CRUD代码,那么这些东西当然没什么用,毕竟只需要去按照已有的模板实现业务的代码就行了,但是如果要我们重新实现一个功能,甚至重构一些代码,那我们怎么把大量的代码和功能设计的优美,具有可读性以及可维护,就需要很多知识的储备了。
恰当的运用设计模式,设计原则,能让代码的可拓展性更强,可读性更好,架构更清晰。这对后续的开发工作以及维护也有很大的帮助,一份代码从开始写就能由近到远的考虑后续的所有工作,才算是一份优秀的代码。如果我们有丰富的知识储备,写一份优美而健壮的代码和完成任务写的一份代码,所花费的时间并不会差太多,因为当我们深入学习并不断实践之后,这些知识和技能会成为我们的一种习惯,不需要花费过多的时间去思考,写出来的代码就自然具备一些优秀的品质了。
所以这也是需要对设计模式进行深入学习的原因。越早的对这些知识进行学习,不断实践养成习惯,才能更好的让自己成为更优秀的程序员。
这里先简单的介绍接下来需要学习的一些知识点,初步的知道这个阶段具体要学习什么,提升自己的哪些能力,接下来会针对这些东西深入的学习。而因为王争老师的课程都是通过Java语言对代码进行演示的,我自身也是对Java语言更加熟悉,所以接下来的一些实践也是通过Java语言进行实现的。