设计模式:开题

115 阅读4分钟

起因

最近在网上看了一个设计模式的课程,在看的过程中有恍然大悟的时刻,也有费解的地方,感觉整个课程挺好的,但是也有一些地方比较抽象,对小白也没有太友好。所以我在这里记录一下,写的好的地方学习,写的晦涩的地方再次记录学习,本资料仅仅是用来自我学习,有不足的地方感谢指正。

设计模式的出现就是很多程序员在解决问题的过程中总结解决问题的范式,来使得代码更加优秀,架构更加清晰,项目更加健壮。只不过对于我这种小白来说,确实比较抽象,外加我不是科班出身,确实比较晦涩。所以这也需要我以更浅显直白的方式去理解,去记忆。整个文章我都以金字塔的形式来记录。

“Talk is cheap”,我一直只知道第一句话,后面再网上才看到下半句,"show me the code",很狂傲的一句话,但是也是程序员对于代码的追求。实际上,代码能力是一个程序员最基础的能力,是基本功,是展示一个程序员基础素养的最直接的衡量标准。也是你的名片!

1.什么是设计模式?

设计模式就是多程序员在解决问题的过程中总结解决项目问题的范式。

2. 为什么要学习设计模式?
  • 应对面试中的设计模式相关问题;
  • 告别写被人吐槽的烂代码;
  • 提高复杂代码的设计和开发能力;
  • 让读源码、学框架事半功倍;
  • 为你的职场发展做铺垫。

我只留下了2个,一个是为了金钱,一个是为了尊严,要是钱给的多,我也可以一直被吐槽,哈哈哈哈哈哈

3. 学习好设计模式就能写好代码吗?

我觉得答案对我来说是否定的,以前把设计模式的名字背的滚瓜乱熟,但是刚刚工作,项目review代码的时候,只知道我的代码烂,同事的代码好,但是我却看不出好在哪里。 评价代码好坏的维度有很多,那么一些直接强相关的有哪些呢?

1.可读性

可读性第一是指代码的命名,一看就知道你的名字是形容什么。 第二个就是代码整洁,两份同样命名的代码,代码的布局也给人的阅读带来不一样的体验。

我觉得可读性是别人review你的代码,修改代码,项目维护的基础,好的代码不仅仅是自己能看懂,别人review的时候,可以见名知著,那就是还行可以的代码,如果你写的代码,最后连你自己也看不懂

2.维护性 维护就是功能增删改,都是维护,前提是不在新增bug的情况下完成需求

3.扩展性

不修改或少量修改原有代码的情况下,通过扩展的方式添加新的功能代码。

4.灵活性

代码中具有抽象好的方法,底层封装好了很多模块可以复用,接口可以适用各种场景用来说实现功能,传递数据

5.简洁性

也就意味着易读、易维护。我们在编写代码的时候,往往也会把简单、清晰放到首位。

6.复用性

继承、多态存在的目的之一,就是为了提高代码的可复用性;

上面是我整理的几个知识点,主要表达的意思,与设计模式努力的目标是一致的,都是为了写好代码,具体点说是写出具有可维护性、可读性、可扩展性、灵活性、简洁性、可复用性高的代码。

4. 怎么学?

这也是我在摸索的,工作前是一直在看一些视频,文章,但是确实例子简单,看了好像会了,要么是过两天就忘了。直到开始工作,才认识到实际代码中,已经触及到上面的关于尊严的第一条了,所以决定学习下。设计模式类比数学公式的话,那按照学数学的经验,

一个是要读题

二是要分析

三是套公式

四是实现

不管怎么样,纸上得来终觉浅,还是要多看,写一下小模块的框架,积累文章,加深记忆。最后集齐金钱碎片,哈哈哈哈哈哈。