`
sunqing0316
  • 浏览: 37604 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

二见钟情——设计模式

 
阅读更多

为什么说是“二见钟情”呢?别人都已经是“三见”、“四见”了,因为我没有参加软考,所以,对设计模式整体的学习,这个只能算是第二遍,以前虽然也经常回顾,但是都没有这么系统。

这一次的设计模式讲解,让我再一次认识到自己在思考问题方面的欠缺,同时,也正是因为这次设计模式的再次回顾,在对知识的理解和对学习方式的认识上又前进了一大步。

这次讲课的学习方式与以往有很大的不同,也许是因为我们的理解能力比之前学设计模式的时候有了提升,这次的讲解无论是对设计模式的理解还是对思维方式的反思都是一个很好的促进。

首先,从思考问题的方式上来说,首先要宏观掌握知识结构,通过简单的几步了解学习的整个过程,这也就是米老师经常提到的全局观。学习知识不要一下子扎到细节里,那样反而对知识的理解有失偏颇,而且也让自己的学习很吃力。正所谓“不谋全局者,不足谋一域”。所以,无论是学习还是做事,都要先有一个宏观的认识,才能保证不跑偏。否则,即使走的再远,方向不对,也是在做无用功。

其次,看问题不要一下子扎到复杂的情况里,要学会找临界点,将问题极端化,也就是将问题简单化,那样更有利于对问题的理解和分析。把问题极端化,其实就是抽象思想的体现,将共同点都提炼出来,看清楚简单的了,再逐步添加内容,不断发生变化,量变达到质变,就变成了另外一种设计模式。而且,这样会很容易的理解一连串的设计模式,这就是编织知识网,高效的学习,轻松的学习。

第三,我们这种讲课的方式,米老师退到幕后,学生来到台前,将学习的主动权交由学生,让我们的学习更具有生命力,更积极主动,调动了大家学习的热情。而且大家有机会在一起大范围的讨论,多种思想相互碰撞,能够相互启发。

第四,当再一次学习的时候,解决了以前很多疑惑或者是不理解的问题。以前觉得一个设计模式一个样,但是,通过这一次的学习,发现设计模式其实都是一样的,没有什么实质性的不同,绝大多数不过是抽象类和接口,就是不断抽象,封装,继承,实现,遵循设计模式的那几大原则,而且设计模式也不是一成不变的,需要我们根据实际情况灵活运用和组合,而没必要完全生搬硬套。

老师真的是个哲学家,因为他会以变化的眼光和联系的眼光看问题,先宏观后微观,思想和行动并重。。。太多了,说不完。。。

印象最深的就是三个工厂的例子:

涉及到的设计模式:简单工厂、工厂方法、抽象工厂。之前也知道这三个模式之间有关系,但是一直不能很好的抽象出来。这次通过米老师的讲解,非常形象明了,知道了三个模式之间是层层递进的抽象关系,并且可以倒推回来,分析三个模式的极端情况,找到其临界点来学习,能够更好的理解设计模式。三个模式之间相互转化而又相互联系,剪不断理不乱,这就是编织知识网。

通过这次设计模式的讲解,尤其是加上老师的指点,不仅仅是对设计模式有了更进一步的认识,更重要的是对自己学习和思考方式的反思,是重新审视自己的大好机会,其实老师经常强调这些学习方式和思考方式,但是自己不够用心,革命尚未成功,同志仍需努力。欠的债,老老实实地还吧。。。

分享到:
评论

相关推荐

    智慧酒店项目智能化系统汇报方案qy.pptx

    智慧酒店项目智能化系统汇报方案qy.pptx

    基于C语言编写的高并发Epoll服务器.zip

    基于C语言编写的高并发Epoll服务器.zip

    liba2ps1-4.14-bp156.5.5.ppc64le.rpm

    liba2ps1-4.14-bp156.5.5.ppc64le

    基于matlab实现囚徒困境中的博弈策略的模拟:尝试了采用几种策略进行博弈使最终双赢的概率变大.rar

    基于matlab实现囚徒困境中的博弈策略的模拟:尝试了采用几种策略进行博弈使最终双赢的概率变大.rar

    毕业设计:springboot的乐器社区网站设计与实现(源码 + 数据库 + 说明文档)

    毕业设计:springboot的乐器社区网站设计与实现(源码 + 数据库 + 说明文档) 2相关技术介绍 3 2.1 MySQL数据库简介 3 2.2 springboot编程技术 3 2.3 VUE框架 3 2.4 B/S结构 4 3系统可行性分析 5 3.1概况 5 3.2可行性研究的前提 5 3.3可行性分析 6 3.3.1技术的可行性 6 3.3.2经济的可行性 6 3.3.3操作可行性 6 3.3.4法律的可行性 7 3.4设计的基本思想 7 3.5性能需求 7 3.5.1系统的安全性 7 3.5.2数据的完整性 7 4 系统设计 9 4.1总体设计 9 4.2数据库的分析与设计 9 4.3数据库表 10 第五章 系统功能实现 12 5.1 乐器社区网站首页界面 12 5.2 乐器信息列表界面 12 5.3管理员管理界面 13 5.4新建乐器信息界面 14 5.5二手商品购买界面 14 6 系统测试 15 6.1测试说明 15 6.2功能测试 15 6.3可用性测试 15 6.5性能测试 16 6.6用例测试 16 6.7测试结果 16

    2024-2030全球及中国鼓机踏板行业研究及十五五规划分析报告.docx

    2024-2030全球及中国鼓机踏板行业研究及十五五规划分析报告

    毕业设计:基于springboot的中小企业财务管理系统(源码 + 数据库 + 说明文档)

    毕业设计:基于springboot的中小企业财务管理系统(源码 + 数据库 + 说明文档) 2 开发技术简介 6 2.1 基于B/S结构开发 6 2.2 jsp语言简介 6 2.3MYSQL简介 6 2.4 eclipse工具 7 3 需求分析 7 3.1 可行性分析 7 3.1.1 经济可行性 7 3.1.2 技术可行性 7 3.1.3 操作可行性 7 3.2 功能需求分析 8 3.3 非功能需求分析 8 4 系统设计 9 4.1 数据库设计 9 4.2 系统模块总体设计 10 5 系统详细设计 10 5.1 后台登录页面 10 5.2 管理员信息 11 5.3 财务人员信息 11 5.4 资产负债 12 5.5 税收管理 12 6 系统测试 13 6.1 测试的目的 13 6.2 测试的方法 13 6.3 测试的重要性 14 6.4 测试内容 14 6.5 测试结果 14

    基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip

    基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构建基于神经网络的图片识别系统源码.zip基于Springboot集成yolo3构

    基于C#的开源音乐播放器MetroPlayer.zip

    基于C#的开源音乐播放器MetroPlayer.zip

    MD5哈希算法的C++实现(兼容大端字节序的CPU)

    MD5哈希算法的C++实现(兼容大端字节序的CPU) 测试代码 #include<iostream> #include<iomanip> #include"md5.c" int main() { using namespace std; u8 $finalHash[16] = {}; const char* str = "a"; //调用MD5 int ret = MD5((u8*)str, strnlen_s(str, INT_MAX), $finalHash); cout << ret << "\n\n"; //输出结果 for (int i = 0; i < 16; i++) { cout << hex << setw(2) << setfill('0') << int($finalHash[i]); } cout << "\n\n"; return 0; }

    2024新版Java基础从入门到精通全套视频+资料下载

    2024新版Java基础从入门到精通全套视频+资料下载

    51单片机输出PWM波,可调频率、占空比

    项目基于Proteus仿真,使用at89c52作为主控芯片,输出PWM波,通过按键设置PWM波的频率和占空比,并且将频率和占空比显示在数码管上。

    2024年全球油性皮肤保湿霜行业总体规模、主要企业国内外市场占有率及排名.docx

    2024年全球油性皮肤保湿霜行业总体规模、主要企业国内外市场占有率及排名

    Windows系统下安装与配置Neo4j的步骤

    附件是Windows系统下安装与配置Neo4j的步骤,包含具体的操作步骤, 文件绿色安全,仅供学习交流使用,欢迎大家下载学习交流!

    Bash脚本优化JAR应用启动与停止流程.zip

    本Bash脚本用于自动化管理Java JAR应用的启动、停止及监控。首先检查JAR进程是否在运行,如在运行则安全终止。随后,使用预设的Java参数启动JAR文件,并将输出和错误日志重定向至日志文件。启动后,脚本持续监控JAR进程状态,确保其在预设时间内成功启动。本脚本提供了灵活的配置和错误处理机制,为Java应用的运维管理带来了便捷与可靠性。

    基于python+django+mysql大数据反电信诈骗管理系统(源码+论文+演示视频)

    【基于Python+Django的毕业设计】基于大数据反电信诈骗管理系统(源码+录像演示+说明).zip 【项目技术】 python+Django+mysql 【实现功能】 主要的功能有文本分析、文本管理、修改密码、个人信息和用户管理。 详见:https://blog.csdn.net/Timi2019/article/details/138357613

    libAvogadro1-1.98.1-bp156.1.1.ppc64le.rpm

    libAvogadro1-1.98.1-bp156.1.1.ppc64le

    261ssm-mysql-jsp 高校学生请假管理系统.zip(可运行源码+数据库文件+文档)

    本系统从使用者角度看,分为学生群体、教师群体。学生及教师都在本系统中录入自己的基本信息。当学生需要请假的时候,可以直接在本系统上填写请假事由、请假时间及返校时间,提交申请即可,然后关注老师的审批进度;当老师在系统上查询到请假信息记录时,审批确认是否同意批复学生的请假意向;当老师审批完成之后,学生就可以看到老师对请假单的审批结果。 高校学生请假管理系统可以让老师和学生在任何时间、任何地点都可以完成请假的整个流程工作。系统会有请假历史记录,学校可以按照月、季度、年度对学生的请假情况进行分析。因此,本系统大大提高了学生请假的效率,同时也有助于学校分析学生请假的情况。 关键字:请假;审批;学生;ssm框架;jsp技术;MySQL数据库;

    智慧物流园区整体解决方案--物流园区、物流枢纽、多式联运qy.pptx

    智慧物流园区整体解决方案--物流园区、物流枢纽、多式联运qy.pptx

    JDK1.6.0-37.rar 解压包

    JDK1.6.0_37.rar 解压包,window64位解压然后配置JDK环境变量使用

Global site tag (gtag.js) - Google Analytics