每日一学1——设计模式用前须知

本文探讨了设计模式在应用程序、工具包和框架中的应用差异。设计模式旨在提升代码的可复用性和扩展性,但其在不同层级的软件中效果各异。文章详细解析了在应用程序中使用设计模式解决内部重用和扩展问题;在工具包中,设计模式的使用更加普遍,以实现代码复用和功能通用性;而在框架中,设计模式则更多地体现在设计重用上。

学习来源:https://www.zhihu.com/question/29477933/answer/586378235

在 GoF 设计模式原书《《Design Patterns: Elements of Reusable Object-Oriented Software》第一章就已经说明了:

使用设计模式的必要性的程度是逐级递增的:应用程序(Application) < 工具包/类库(ToolKit/Library) < 框架(Framework)

设计模式对不同层级的程序重要性不一样

大部分程序员编写的程序可以分为三类(应用程序、工具包 、框架),使用设计模式的目的是提高代码的可复用性和可扩展性(灵活性), 但是设计模式在这三类软件中所发挥的效果是不一样的。

具体来说使用设计模式的必要性的程度是逐级递增的:应用程序(Application) < 工具包/类库(ToolKit/Library) < 框架(Framework)

  • 应用程序
    • 在编写应用程序的时候使用设计模式, 设计模式可以帮助的是内部重用,管理和扩展问题。或者使得一个应用减少对于平台的依赖。
  • 工具包
    • 工具包或库是依赖相互关联的可重用的类, 用来提供一些有用的且非常通用的功能, 例如集合类库(提供了集合类List, Stack, Set 等)。 这一类代码是为了帮助应用程序完成其功能而编写的, 所以非常强调代码复用。 因此, 工具包设计通常是要比应用程序的设计困难的, 毕竟, 作为工具包的设计者,要向千差万别的应用程序提供尽可能通用的功能, 因此, 在编写过程中, 工具包设计过程中要避免场景假设, 避免有可能会限制工具包灵活度的依赖。相较于应用程序, 在工具包/类库中有效地使用特定的设计模式,就成了一件几乎不可避免的事。
  • 框架
    • 框架和工具包很是类似, 都是一系列相互关联,重用性很高的类和功能的封装, 但是区别是框架的核心是提供一种针对特定类别软件来说可重用的设计。例如Java程序员所熟知的SSH框架宏观上来看, 就是提供了一种广泛应用于商业网站程序的MVC设计。 框架实际上阐释了你的应用程序的架构, 它会定义总体的结构,把不同的职责划分到不同的类和对象中。
    • 当我们在使用框架的时候, 其实框架就已经帮我们预定义好了在该问题领域很多通用的设计决策。 所以框架的精髓是设计重用 而非 代码重用, 尽管框架中往往包含了很多可以复用的代码。

目前主要开发的都是应用程序,基本没有涉及到多人协作,软件项目也不太大,导致一直未用好设计模式,对程序的框架设计也是停留在简单的用法上,甚至很多时候到开发后期都不按照自己原先制定的规则走。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值