设计模式从哪来、难学吗、什么时候学、能做什么?(设计模式与开发实践 P1)

这篇文章介绍了设计模式的起源,如迭代器模式和享元模式,强调学习设计模式能帮助解决问题。指出在JavaScript中,虽然有些模式是天然实现的,如Command模式,但何时使用设计模式需权衡代码复杂性和功能需求。
摘要由CSDN通过智能技术生成

这是关于《JavaScript 设计模式与开发实践》的笔记,尝试总结了设计模式的精髓,从 JS 角度出发拓展到其他语言,请支持曾探作者原版~

设计模式从哪来

设计模式从1995年起始,为众多程序工作者提供了设计软件的灵感和解决问题的思路

实际上模式这个词起源于建筑学,是找到了许多高质量设计中的共同点,并使用模式一次指代了这种相似性。那么通俗一点说,设计模式就是:给面向对象软件开发中一些好的设计取个名字

一些好的设计你可能自然可以想到,不知不觉中已经使用无数次,但我们仍然需要公式化和规范化这样的设计工作,比如 JavaScript 中的 each 函数:如果你和你要讲述的对方都了解迭代器模式,描述起这个函数就不再困难了!

所以学习设计模式是自然的,或许23种常见设计模式中,日常代码工作时可能已经熟悉许多了呢~

学习模式的作用

如果熟悉设计模式,当合适的场景出现时,自然而然可以想到用设计模式来解决问题

系统中出现了大量相似对象,给内存造成了负担,熟悉设计模式的人自然想到了享元模式

如果我们还没有学过设计模式,遇到问题的时候,如果觉得这个问题出现的概率应该很高,不妨去翻翻设计模式,说不定就能找到别人同样遇到的问题

设计模式和编程语言

结论是,在函数式语言和面向对象语言里,都离不开设计模式

在1996年GoF提出的23种设计模式中,16种在Lisp语言中已经是天然的实现,再例如:Command 模式在 Java 中需要一个命令类、一个接收者类、一个调用者类,Command 模式把运算块封装在命令对象的方法内,成为该对象的行为,并把命令对象四处传递,但在 Lisp 和 JS 这种把函数当作一等对象的语言中,函数就能封装运算块,且函数可以被当成对象一样四处传递,因此 Command 模式就是 JS 中隐藏而天然实现的模式了

什么时候用设计模式

使用设计模式很多时候无疑会导致代码量增加,结构变得复杂

但,这就好像一间屋子,一开始肯定直接把东西丢进去就好了,但随着东西变多,就需要一些规则来处理分类等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值