最近在学习面向对象设计模式,GOF的23种设计模式大概看了一遍,简单总结一下,设计模式主要分为三种模式,分别是创建模式,结构模式,行为模式。
回过头想一下具体有哪些模式,在什么情况下用什么设计模式,好像还是一头雾水,但是我有几点我却印象深刻,下面就来说说我的感受。
什么是设计模式,我认为设计模式就是前人在程序设计过程中总结出来的经验,他不是凭空创造出来的。
为什么要用设计模式呢?
设计模式的出现就是为了解决软件的变化,因为世界上没有不变的软件,如果有那我想设计模式也就不存在了。刚才说设计模式是应对软件的变化,软件的变化给程序员带来的最大的痛苦是什么呢?我想是软件修改某一处会牵一发而动全身,也就是软件的耦合度过高,设计模式的任务就是降低软件模块之间的耦合度,尽量把模块之间的耦合降到最低。
那么如何降低耦合呢?
我认为关键就是抽象出比较稳定或不变化的部分,将变化比较频繁的部分提取出来进行封装,也就是常说的封装变化点,这是始终贯彻与23中设计模式的始终,我觉得也是设计模式的核心。
掌握了这个核心那么至于使用什么设计模式并不重要了,重要的是如何降低耦合以应对软件的变化。
我不喜欢一上来就考虑用什么设计模式,我倒是喜欢现来实现功能,然后用重构的方法来对程序进行重构,以降低程序之间的耦合,至于重构成什么样子,是否符合哪一种设计模式我并不关心,我所关心的是它能否很好的应对软件的变化。
这让我突然想起了《倚天屠龙记》中张三丰交张无忌太极拳的情节,张三丰先是刷了一套他自创的太极拳,张无忌由于天资聪慧看一遍就记下了所有的招式,可是张无忌在用太极拳和那个高手(忘了叫什么了)过招时,并没有发挥出太极拳的威力,于是张三丰就让张无忌忘掉所有的招式(具体忘掉招数的过程很是搞笑),不要拘泥一招一式,见招拆招,最终张无忌战胜了那个高手,这个情节告诉我们,太极拳其实并不是注重招式的,它的精髓就是一种思想,是以静制动,四两拨千斤的道理。
我想设计模式也类似于太极拳,它是一种思想,一种应对变化的解决思想,他更是一门艺术,更是一种境界,是一种以无招胜有招的境界。
以上就是我对设计模式的一些肤浅的理解,望批评指正!
相关推荐
——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 ...
这显示了作者在项目中采用了面向对象编程的思路,通过定义常量和类来组织代码。 综上所述,这个PHP个人博客项目涵盖了数据库设计的基本原则,包括表结构设计、字段类型选择以及数据库引擎的选择。同时,它还涉及到...
- **对流行的设计方法的评论**:这一节可能会分析诸如面向对象设计、设计模式等现代设计方法的有效性和局限性。 ##### 核对表:软件构造中的设计 - 该部分提供了一份详细的清单,指导开发者在设计过程中需要注意的...
2024年第一季度,青岛房地产市场经历了显著变化,总体呈现供需双降的趋势。一季度全市商品房新增10,721套,面积约152.04万平方米,同比下降29%;销量为14,936套,面积约200.85万平方米,同比下降38%,成交均价为14,204元/平方米,同比下降2%。土地市场方面,供应总量为39万平方米,同比减少7%,但成交面积为27万平方米,同比增长31%,楼面地价为6,625元/平方米,同比增长253%,土地出让金为17.61亿元,同比增长354%。二手房市场新增挂牌2.9万套,成交13,405套,132.21万平方米,累计挂牌51.70万套,挂牌均价17,800元/平方米。此外,青岛市出台多项政策支持房地产市场平稳健康发展,包括降低房贷利率、优化开发用地土地规划政策、支持房企融资等。这些政策旨在促进市场供需平衡,防止市场大起大落。
linux常用命令大全
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
空调销售网站策划案例.doc
全球6G技术大会2024年以用户为中心的6G接入网技术研究白皮书31页.pdf
简约专业风格毕业答辩模板是一系列专为追求简洁与高效表达的大学生设计的答辩文档模板,共47个。这些模板融合了经典的设计元素与现代审美,强调信息的清晰传递与视觉的整洁,旨在帮助学生在答辩中以最专业的面貌展示自己的研究成果。 每个模板都具备结构合理的布局,适用于各个学科和研究领域,从人文社科到自然科学,均能满足不同需求。简约风格的设计使得学生能够专注于内容本身,避免冗余信息的干扰,提升答辩的专业性和可信度。此外,模板中合理运用的色彩、字体和图表设计,不仅增强了视觉吸引力,也使信息更易于理解。 通过使用这些简约专业风格的毕业答辩模板,毕业生能够自信地呈现自己的学术成果,提升答辩的整体效果,为成功的学术交流打下坚实基础。这些模板是展示个人研究与风格的理想选择。
由 Epsilon Luoo 在 HC3-Chinese 的基础上进行了一些细微的修改和清洗
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
HI3519DV500 配置无线网依赖库以及编译脚本
资源说明; 1-----刷写前提是手机必须解锁bl先。而且会在fast模式刷写固件 2-----刷写方法与官方刷写步骤一样 3-----此固件为定制初始固件。可以在fast模式刷写 4-----属于适配固件。也许有个别bug。不接受请勿下载 5-----需要一定的刷机常识与动手能力的友友刷写。 6-----资源有可复制性。下载后不支持退。请知悉 7-----定制其他需求可以在csdn私信博主 博文参阅:https://csdn9.blog.csdn.net/article/details/143058308
Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
世邦魏理仕:2021年西安房地产市场回顾与2022年展望
Android Studio 2022.1.1和java编程语言yinyuebofangqi
C知道对话分享图片
png-jpg-gif-webp-tiff等图片压缩工具基于nodejs的实现,绿色本地免安装,解压后运行exe文件,将图片文件或者包含图片的文件夹拖拽到软件界面即可压缩
我们要了解什么是DSP(Digital Signal Processing)。DSP即数字信号处理,是一种利用数字计算方法对信号进行分析、变换和操作的技术。在汽车音响领域,DSP被广泛应用于改善音质,通过调整频率响应、延时、相位和增益等参数,使声音更加均衡、立体。 惠威是一款数字信号处理器,适用于那些希望升级原车音响系统但预算有限的用户。它通常拥有多个输入和输出接口,可以连接到汽车的音频源和扬声器,通过软件进行调音,使得声音能够适应不同的驾驶环境和听音偏好。 ,集成了先进的噪声抑制技术和强大的功率放大器,旨在为发烧友级别的车载音响系统提供卓越的性能。用户可以通过软件对整个系统的每一个细节进行优化,包括主动分频、时间校正等,以达到Hi-Fi级别的音乐享受。
通信工程分包合同.docx