前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式导论

设计模式导论

作者头像
一行舟
发布2022-08-25 14:10:59
1540
发布2022-08-25 14:10:59
举报
文章被收录于专栏:一行舟一行舟

简介

“设计模式”一词,最早衍生自建筑领域。1994年10月Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四个人一起出版了《设计模式:可复用面向对象软件的基础》一书,奠定了设计模式的基础。书中介绍了23种设计模式,下文我们将一一介绍。

软件领域中广义的设计模式是指在特定场景下总结的编程范式。这些编程范式可以指导我们通过某种方式组织代码,能写出更好的代码。日常工作中大家讨论的设计模式,基本是指面向对象编程场景下的常用编程范式,往往都脱离不了上述的23种设计模式。因为我们要介绍的23种设计模式都是面向对象编程场景下的,所以在学习设计模式之前必须了解面向对象编程的基础知识。(传送门

23种设计模式

23种设计模式分为三类:创造型、结构型、行为型。

创造型

创造型设计模式通过规定对象创建的机制,使创建的对象满足不同的应用场景。创造型设计模式有5种:工厂方法、抽象工厂、单例模式、创造者模式、原型模式。

结构型

结构型设计模式通过规范一个或一组对象的内部结构,增强对象的灵活性和可维护性。结构型设计模式有7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型

行为型设计模型通过一定的规则增强多个对象之间交互的可维护性及可扩展性;或是通过规范对象内部的行为方便执行一连串的或者多变的算法。

行为型设计模式有11种:策略模式、模版方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

两面性

虽然我们还没有详细介绍每一种设计模式,但是关于设计模式的局限性还是要先说一下的。

  1. 我们介绍的设计模式更适配面向对象编程的场景,对于函数式编程、面向过程编程等其它编程范式适用性不足。
  2. 学习完设计模式,在思考具体问题时容易形成思维定势,不自觉的使用最熟悉的设计模式。
  3. 过度使用设计模式会让简单代码逻辑变得复杂。
  4. 有一些设计模式很相似(比如策略模式和状态模式),对于相似的模式不必细究一些概念上的区别,只要找到合适的应用场景就好了。

总结

本文我们简要介绍了设计模式的由来和常见的设计模式,后续会结合例子逐一介绍这些设计模式。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一行舟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 23种设计模式
    • 创造型
      • 结构型
        • 行为型
        • 两面性
        • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档