设计模式课阶段性总结

简介: 设计模式课阶段性总结

背景介绍

      在中我们的收获和成长也是非常大的,不仅仅是在计算机中在生活中遇到问题都能够想到米老师平时说的一些思想,当然还有很多的地方是我们需要继续学习和提高的。上设计模式课更多的是学习 学习方法和把基础的知识学扎实了学通学透了。就像盖高楼一样,只有把地基搭好了才能搭建起来高楼大厦。如果地基都没有搭建好,就根本搭建不起来高楼大厦。我们的学习也是一样,只有我们把基础支持学扎实了,我们才会有学习更高级技术的能力,要不然就像文盲一样,别人发布的内容你都看不懂,就更不用说进行学习了。所以上设计模式课是非常有意义从学习的能力、思考问题的方式、思想上的提升以及动手的能力都有提高。

思想上移,行动下移

    1.要积极主动的提出问题,问题是最好的老师。

       不论是我们自认为会的内容还是不会的内容都可以进行提问, 只有我们通过提出问题的这种方式和其他的小伙伴进行讨论,我们才会有更加深刻的印象,我们讨论的过程中可以没有最终的结果,但是积极主动和激烈的讨论是这个过程是必不可少的,我们会在激烈的讨论的过程中明确很多的概念。把我们已知的和别人已知的进行一个思维上的碰撞,如果只是一味的自己去思考,自己去解决问题,这样我们的效率是很低的而且我们经常出现的一种情况就是自己欺骗自己,自己以为自己学会了。但是和别人表达或者交流的过程中会发现我们有很多的内容是被我们透明化的,只要我们把别人讲懂,讲清楚。这样我们可以认为我们目前对于一个知识点是已经明确的。

    2.明确概念

       其实在学习的过程中,有很多的内容是我们概念不是十分的清楚而导致的,我们的理解和别人所说的是不一致的,要不然就是理解了其中的一部分,另一部内容给忽略掉了,其实世界上并没有什么新的概念,都是由公里一步一步组成而来的,只要我们把所谓的新概念中每一个已知的概念明确了之后,新概念自然而然也就不新了,所以当我们拿到一个所谓的新概念的时候,我们需要把这个概念进行一个拆分,拆分成一个跟我们非常熟悉的小颗粒,把每一个的小颗粒明确了组成起来就是新的概念。

    3.要有想象力和创造力

       我们可以借助我们已知的内容的发展规律来完成想象力和创造力,在计算机中,想象力和创造力是十分重要的,只有我们有了想象力和创造力,我们在设计出来的程序中才能够更加的抽象更加的符合面向对象的思想,满足业务的高服用性和扩充性,以及后期的维护。这样我们开发出来的程序才会给公司带来更多的价值,我们也会发展的越来越好。米老师经常说航天飞船固然重要,但是更重要的是嫦娥奔月这种思想,只有我们有想象出来了嫦娥奔月的这种情况,我们才有可能创造出来航天飞船。我们在计算机中开发程序也是一样,只有我们有想象力和创造力,我们才能够发现新的大陆。来产生更多的价值。

    4.搜索引擎的使用

       在搜索引擎的使用方面,我一开始认为我非常能够使用好搜索引擎,但是直到上次去查找关于invoke回调函数的一些文章的时候,我才发现我使用的搜索引擎都是僵化的。我们在使用的过程中基本上都是在搜索框中添加非常多的修饰词来使搜索的结果更加的精准,但是对于互联网来说内容是非常多,是非常庞大的每个人的理解都可能不一样,这样就会导致搜索出来的内容会非常的稀少。但是如果我们抽象一下把修饰词进行一个减少,提高一下搜索的这个范围。我们搜索出来的内容就会非常的丰富,我们可以站在别人的膀上进行更准确的搜索。有时候我们可以换个角度去思考问题就可以很快很容易的把问题解决掉。

     5.拒绝僵化

       要用有限的思维去解决问题。在我们一开始上世界模式的时候,一直在强调面向对象和面向过程的两种设计思想,在学习这两种设计思想的时候,我们一直认为面向对象是最好的一种设计思想,但是结果并不然两种设计思想都非常重要,只是应用的场合不同,两种设计思想的侧重点也不同。面向对象更符合一些较大的程序,因为较大的程序对于代码的复用和后期的扩充以及维护的要求都是十分严格的,要不然等程序越做越大的时候,我们的系统你就会难以扩充,很难满足用户的需求。维护起来也会很困难。但是对于一些小的程序来说要求响应速度比较快的话,我们就可以使用。面向过程的这种设计思想,这种设计思想很简单,也很直观每一步都直些,什么内容都写到一起执行的效率也比较高。但是一旦系统比较大的话就很难维护。所以说两种设计思想都有他们的优势利弊,并不是说哪个好,另一个就不好。还有很多时候是当我们在设计对于一个需求进行一个功能设计的时候,我们想到了几种情况,就是设计了几种情况,并没有把后期可能还要扩展其他的情况给覆盖到,通过听李老师的课,我们在设计需求的时候会刻意的想我们的代码,是不是还有别人可以进行复用,是不是后期还有其他的可能。来减少我们把代码写死的这种情况。

    6.知识之间要做结构化

       只有我们把已经学习的知识进行结构化,达到牵一发而动全身的效果,这样我们在解决问题的时候才不会割裂,不会遗漏。像我们经常说的水杯一样,当我们拿起来水杯的时候,我们就可以从多个维度去对,这个水杯有一个认识,从水杯的材质,水杯的颜色,水杯的用途以及水杯它的形状等。各个方面就可以让我们对水杯有个充分的了解,只有我们才足够了解的时候,我们在遇到问题的时候才能够把我们已知的内容用上。才能够迎刃而解。

    7.概念要和代码一一对应

       我们不仅要思想上移,还要行动下移。只明确概念不把概念和代码进行对应在我们实际执行的时候就很难把概念应用上,心里永远都是空落落的。当我们把概念和代码能够一一对应的时候,我们就可以把别人说的话转换成我们代码, 这不仅提升了我们的编码能力,而且还提高了我们对于概念多一个维度的认知,当别人一说概念的时候,我们就能够立刻转换为代码。并且能够非常清楚的知道代码是如何展示的,如何执行的。

    8.善于发现,我们一直都说艺术源于生活,高于生活

       在计算机中也是一样,只要我们善于观察生活中的每一个小细节,比如说垃圾桶需要套垃圾袋才能够往里面扔垃圾。只有我们经常去发现去观察,我们在编写代码的时候才会想的更加的全面,更加的系统。别人想不到的,我们都能够想到。别人看不见的,我们善于去发现,善于去观察。我们在编写代码的时候,逻辑才会更加的严谨。毕竟生活中的每一部分都可以转换成我们写的程序,生活中做好了,相信我们在编写代码的过程中也不会差。

     9.学习不是一蹴而就的,是一个反复的过程

       我们之前一直在研究依赖关系,包括依赖是什么,依赖才代码中是如何体现的以及依赖关系的和其他类的耦合度。在我们阶段性研究完依赖的时候发现,两个类之间产生依赖关系的耦合度太强,为什么这样说的,因为在我们写的小例子中米老师依赖何老师或者何老师依赖米老师都需要两个类之间产生这种直接关系,所以为了使两个类之间的关系变得更弱引入了委托的概念,委托就好比一个第三方,两个类之间彼此都不认识但是委托是认识两个类的,所以通过委托就可以实现米老师让何老师开门,米老师依赖何老师这样的小例子。这样米老师和何老师之间的关系就变成了一种间接关系,这种间接关系来源于委托,委托做的事情就是监听米老师发消息并且告诉何老师去开门。但是在研究委托的过程中发现有一些概念是不清楚的,比如实现委托的过程中用到了反射,所以我们进一步去研究什么是反射,反射的作用以及委托中是如何应用委托的。接下来就通过代码的形式展示整个过程。通过我们每一次的学习都会有新的发现和认识,每一次都能够发现我们还有哪些方面需要提高和研究

    10.要有全局观:当我们在分析一件事情的时候,要先明确事情的一个边界

       然后把边界中涉及到的每一种可能进行一个遍历(至少是我们已经学过的内容)。这样我们在分析问题的时候才不会丢三落四,以偏概全。即便是自己已经很清楚的前提,也需要把它明确出来,说出来就不会发生错误我们的逻辑也会更加的清晰。如果没有说出来的话,就有很多透明的东西和不确定的东西。如果我们要分析一件事情的话,直接扎到了事情的细节当中,我们就很容易被自己所限制住,很难站在全局观的角度去分析。事物之间是有联系的如果只考虑某一个事物内部的事情就很难把事物之间的这个联系得到充分的应用。所以我们在分析一件事情的时候,首先要站在全局观的角度去进行分析,全局非常清楚了,之后再进入到事情的微观进行解决。这样我们的逻辑才不会混乱。

相关文章
|
5天前
|
设计模式 监控 算法
Python编程中的设计模式应用与实践感悟###
在Python这片广阔的编程疆域中,设计模式如同导航的灯塔,指引着开发者穿越复杂性的迷雾,构建出既高效又易于维护的代码结构。本文基于个人实践经验,深入探讨了几种核心设计模式在Python项目中的应用策略与实现细节,旨在为读者揭示这些模式背后的思想如何转化为提升软件质量的实际力量。通过具体案例分析,展现了设计模式在解决实际问题中的独特魅力,鼓励开发者在日常编码中积极采纳并灵活运用这些宝贵的经验总结。 ###
|
2月前
|
设计模式 算法 数据安全/隐私保护
软件工程师,不懂点设计模式怎么行
软件工程师,不懂点设计模式怎么行
37 10
|
6月前
|
设计模式 XML Java
第五篇 设计模式的选择和应用 - 智慧选择与合理实践
第五篇 设计模式的选择和应用 - 智慧选择与合理实践
|
5月前
|
设计模式 C#
技术经验分享:C#设计模式
技术经验分享:C#设计模式
28 0
|
6月前
|
设计模式 存储 缓存
设计模式全览:编程艺术的精髓!
设计模式全览:编程艺术的精髓!
44 0
|
6月前
|
设计模式 缓存 算法
探索设计模式的魅力:创新思维与面试中的设计模式问题(超详细38题3万8字参考答案)
设计模式是在软件设计中经常出现的问题的解决方案。它是由经验丰富的开发人员在解决常见设计问题时总结出来的一套通用的解决方案,是一种对反复出现的设计问题的可重用的抽象描述。设计模式可以用于高质量的软件开发,它在软件开发过程中提供了一种复用可扩展性简化代码维护等方面的解决方案。设计模式通常包括以下几个要素:用来描述问题、解决方案和效果的简洁术语。描述了在何时使用该模式以及问题的背景和条件。
138 0
|
设计模式 算法 前端开发
软件开发常见的一些设计模式,留着供自己研究和面试使用
说到软件开发,就不得不提到设计模式,比如大家基本上都用过什么MVC框架开发各种系统,一些好的设计模式不仅能让软件运行的更为流畅,更能让开发人员的工作效率大大提高。本文就来列举一些常用的设计模式,供大家参考收藏。
130 1
|
设计模式 算法 搜索推荐
23个小案例带你吃透23种设计模式(三)
23个小案例带你吃透23种设计模式
163 0
23个小案例带你吃透23种设计模式(三)
|
设计模式 SQL 安全
23个小案例带你吃透23种设计模式(一)
23个小案例带你吃透23种设计模式
228 0
23个小案例带你吃透23种设计模式(一)
|
设计模式 存储 算法
23个小案例带你吃透23种设计模式(二)
23个小案例带你吃透23种设计模式
156 0
23个小案例带你吃透23种设计模式(二)

相关实验场景

更多