`

无招胜有招——面向对象设计模式随笔

 
阅读更多

最近在学习面向对象设计模式,GOF的23种设计模式大概看了一遍,简单总结一下,设计模式主要分为三种模式,分别是创建模式,结构模式,行为模式。

  回过头想一下具体有哪些模式,在什么情况下用什么设计模式,好像还是一头雾水,但是我有几点我却印象深刻,下面就来说说我的感受。

  什么是设计模式,我认为设计模式就是前人在程序设计过程中总结出来的经验,他不是凭空创造出来的。

  为什么要用设计模式呢?

  设计模式的出现就是为了解决软件的变化,因为世界上没有不变的软件,如果有那我想设计模式也就不存在了。刚才说设计模式是应对软件的变化,软件的变化给程序员带来的最大的痛苦是什么呢?我想是软件修改某一处会牵一发而动全身,也就是软件的耦合度过高,设计模式的任务就是降低软件模块之间的耦合度,尽量把模块之间的耦合降到最低。

  那么如何降低耦合呢?

  我认为关键就是抽象出比较稳定或不变化的部分,将变化比较频繁的部分提取出来进行封装,也就是常说的封装变化点,这是始终贯彻与23中设计模式的始终,我觉得也是设计模式的核心。

  掌握了这个核心那么至于使用什么设计模式并不重要了,重要的是如何降低耦合以应对软件的变化。

  我不喜欢一上来就考虑用什么设计模式,我倒是喜欢现来实现功能,然后用重构的方法来对程序进行重构,以降低程序之间的耦合,至于重构成什么样子,是否符合哪一种设计模式我并不关心,我所关心的是它能否很好的应对软件的变化。

  这让我突然想起了《倚天屠龙记》中张三丰交张无忌太极拳的情节,张三丰先是刷了一套他自创的太极拳,张无忌由于天资聪慧看一遍就记下了所有的招式,可是张无忌在用太极拳和那个高手(忘了叫什么了)过招时,并没有发挥出太极拳的威力,于是张三丰就让张无忌忘掉所有的招式(具体忘掉招数的过程很是搞笑),不要拘泥一招一式,见招拆招,最终张无忌战胜了那个高手,这个情节告诉我们,太极拳其实并不是注重招式的,它的精髓就是一种思想,是以静制动,四两拨千斤的道理。

  我想设计模式也类似于太极拳,它是一种思想,一种应对变化的解决思想,他更是一门艺术,更是一种境界,是一种以无招胜有招的境界。

  以上就是我对设计模式的一些肤浅的理解,望批评指正!

分享到:
评论

相关推荐

    设计模式随笔系列

    "鸭子问题"是设计模式中的一个经典例子,通常用来讨论面向对象设计中的多态性和接口概念。 鸭子问题源自于英国计算机科学家贝兹(Gerald J. Sussman)和吉尔伯特·杰克逊(Guy L. Steele Jr.)的一次对话,他们探讨...

    NET设计模式随笔

    行为型模式(如责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式)关注对象之间的交互和职责分配,它们定义了对象之间如何通信和...

    学习随笔——张明明.doc

    【学习随笔——张明明.doc】这篇文档记录了作者张明明在进行网络远程研修学习过程中的感悟和收获。从内容来看,这篇文章突出了几个重要的教育理念和学习方向: 1. **转变观念**:首先,张明明认识到教育观念的转变...

    教学随笔——怎样提高学生的习作水平.doc

    教学随笔——怎样提高学生的习作水平.doc

    .net设计模式详细介绍以及案例代码

    .NET设计模式系列文章和随笔,如Terrylee的"探索设计模式"系列,提供了对.NET中常见设计模式的详细介绍和案例代码,对初学者和有经验的开发者都有很大的帮助。这类资源可以帮助开发者在.NET平台上更加高效地应用设计...

    Delphi面向对象学习快速入门资料

    通过阅读这些随笔,学习者能够逐步理解Delphi中的面向对象编程思想,掌握类的设计、对象的使用、多态的应用以及如何利用Delphi进行更复杂的系统设计。结合实践,这将有助于提升Delphi编程能力,为开发高质量的...

    改方案随笔——传统住宅及装配式住宅建筑设计方法之不同.doc

    随着建筑业的不断发展,装配式住宅作为一种新型建筑模式,正逐渐改变着传统的建筑设计和建造方式。本文将通过一个实际案例分析,探讨传统住宅与装配式住宅在设计方法上的主要差异。 1. **设计策略的转变** 在传统...

    开发随笔——Spring事务管理 第一部分

    spring + hibernate 事务管理demo工程源码(无jar包) 博文链接:https://momoko8443.iteye.com/blog/190995

    红楼随笔——所谓狗尾续貂-用于合并.doc

    再者,林黛玉在高鹗的续作中,从一个有独立思想和丰富内心世界的女子变成了一个不断哭泣的柔弱形象,她的悲剧色彩被简化为一个典型的恋爱悲剧主角。失去了与宝玉的深度对话和共同理念,林黛玉的博学和机智不再显现,...

    工作随笔开学第一天——新春茶话会.docx

    这篇文档虽然标题为“工作随笔开学第一天——新春茶话会.docx”,但实际上记录的是一次开学典礼中的新春茶话会活动,主要涉及了教育、师生互动和家庭教育等多个方面。以下是对这些知识点的详细说明: 1. **师生互动...

    C++ Primer 中文版(第 5 版)第一章——随笔(含练习).docx

    - `std::cout`用于输出数据,`运算符将数据发送到`cout`对象。 - `std::endl`是一个特殊字符,用于换行。 - `std::cin`用于接收用户的输入,同样使用`>>`运算符。 3. **练习解析** - **练习1.1**: 未给出具体...

    Java完整随笔(学习)

    2. **面向对象编程**:Java的核心特性是面向对象,可能的笔记内容有类、对象、封装、继承、多态等概念,以及如何创建和使用这些概念进行程序设计。 3. **异常处理**:Java中的异常处理机制是编程时必须掌握的部分,...

    C++ Primer 中文版(第 5 版)第一章——随笔(含练习)-源码

    源码

    小学一年级语文教案——《看菊花》教学随笔.doc

    教师首先引导学生走出教室,观察校园环境,通过交流讨论,学生们发现了小草的枯萎、树叶的凋落、大雁南飞等深秋景象,对“深秋”这个词语有了直观的理解。接着,教师引导学生关注到在寒风中依然盛开的菊花,让学生们...

    [【教育随笔】任性——一种可怕的教育结果]教育新理念.pdf

    【教育随笔】中的主题是“任性”,作者认为这是一种可怕的教育结果。文章强调教育的核心目标是培养健康的人格,使个体能适应社会,而过度的放任和无原则的赏识教育可能导致孩子的任性行为失控。任性,即无敬畏之心,...

    假期旅游随笔 探寻竹海中的仙境——重渡沟.docx

    【知识点】 1. 旅游规划:文中描述了家庭在暑假期间计划的一次说走就走的旅行,展示了如何准备旅行所需的食品和生活用品,以及如何安排出发时间和行车路线。 2. 交通管理:文章提到景区内车辆众多,停车位不足,...

    语文的原点——本色语文的主张与实践.pdf

    【部分内容】部分由于OCR扫描识别错误或漏识别,无法提供有意义的信息。由于没有具体的文本内容,无法直接从文件中提取知识点。 尽管如此,我们可以从文件名出发,尝试对“本色语文”的主张与实践这一主题进行分析...

    面向对象闲话

    如果你要把一只猫卖给一个计算机专家,千万不要说它有多聪明多可爱,而要说,这是一只面向对象的猫。这是程序员对程序员的揶揄。面向对象渗透到软件的各个领域,既然找不到银弹,这颗铜子弹成了我们对抗人狼的最佳...

Global site tag (gtag.js) - Google Analytics