学习设计模式的方法有很多。全面深入地学习,可以选择经典设计模式书籍。或者通过简短、清晰的教程快速了解设计模式。本文整理了23个设计模式的简明教程,其中多篇以讲故事的方式来学习设计模式。

创建型模式

一、Singleton,单例模式

《案例:模式的秘密—单例模式(视频)》

设计模式是前辈们在多年开发工作中经验的总结,可以提高代码的可重用性、可靠性和规范性,让代码更容易理解,而单例模式是其中最重要、最简单、最常用的设计模式之一,让我们一起来揭开它的神秘面纱吧。

《讲故事,学(Java)设计模式—单例模式》

单例模式是Java中最常用的设计模式之一,它通过阻禁止外部实例化和修改,对象的方式来控制所创建的对象的数量。这个概念可以被广泛地推广到仅使用有一个现存的对象能更高效运行的系统,或者是限制在若干个对象实例化为特定的数目的高效系统环境系统中。

二、Abstract Factory,抽象工厂

《讲故事,学(Java)设计模式—抽象工厂模式》

抽象工厂模式是在工厂模式的基础上增加的一层抽象概念。如果比较抽象工厂模式和工厂模式,我们不难发现前者只是增加了一层抽象的概念。抽象工厂是一个父类工厂,可以创建其它工厂类。故我们也叫它“工厂的工厂”。

三、Factory,工厂模式

《讲故事,学(Java)设计模式—工厂模式》

工厂模式是根据不同的参数创建对象。例如用工厂创建人。 如果我们想要一个男孩,工厂就会为我们生产一个男孩;如果我们需要一个女孩,工厂则会为我们生产一个女孩。工厂会根据不同的参数,为我们提供不同的物品。

四、Builder,建造者模式

《讲故事,学(Java)设计模式—建造者模式》

建造者模式的关键特性是它将一个建造过程分解成很多步骤,也可以说,每个产品的建造会遵循同样的流程,不过流程内的每一个步骤都不尽相同。

五、Prototype,原型模式

《讲故事,学(Java)设计模式—原型模式》

原型模式被用在频繁调用且极其相似的对象上,它会克隆对象并设置改变后的属性,而且消耗的资源较少。

行为型模式

六、Iterator,迭代器模式

《Java Design Pattern: Iterator》

七、Observer,观察者模式

《讲故事,学(Java)设计模式—观察者模式》

简而言之,观察者模式=发布者+注册者。观察者模式用来对GUI中的动作做侦听。Swing GUI的例子就表明了动作侦听是怎样实现观察者模式的。

八、Template Method,模板方法

《案例:模式的秘密—模板方法模式(中文视频)》

模板方法模式是在日常开发中使用最为广泛的设计模式之一。通过本视频,你可以了解什么是模板方法模式,如何用 Java 语言实现模板方法模式。@Arthur 将用简单生动的例子带你领略模板方法模式的真意,最后还将用实际的行业案例告诉你模板方法模式的强大功能。

九、Command,命令模式

《Java Design Pattern: Command》

十、State,状态模式

《Java Design Pattern: State》

十一、Strategy,策略模式

《Java Design Pattern: Strategy》

十二、Chain of Responsibility,职责链模式

《Java Design Pattern: Chain of Responsibility》

十三、Mediator,中介者模式

《Java Design Pattern: Mediator》

十四、Visitor,访问者模式

《Java Design Pattern: Visitor》

十五、Interpreter,解释器模式

《Java Design Pattern: Interpreter》

十六、Memento,备忘录模式

《Java Design Pattern: Memento》

结构型模式

十七、Composite,组合模式

《Java Design Pattern: Composite》

十八、Facade,外观模式

《Java Design Pattern: Facade》

十九、Proxy,代理模式

《Java Design Pattern Story for Proxy – A Slutty Lady》

二十、Adapter,适配器模式

《案例:模式的秘密—适配器模式(中文视频)》

所谓适配器,就是连接“源”和“目标”的纽带。本课程由生活中常见的例子入手,讲述适配器模式的组成和应用,为你的 Java 达人锻造添砖加瓦

二十一、Decrator,装饰模式

《Java Design Pattern: Decorator – Decorate your girlfriend》

二十二、Bridge,桥模式

《讲故事,学(Java)设计模式—桥接模式》

简单来讲,桥接模式是一个两层的抽象。桥接模式是用于“把抽象和实现分开,这样它们就能独立变化”。 桥接模式使用了封装、聚合,可以用继承将不同的功能拆分为不同的类。

二十三、Flyweight,享元模式

《Java Design Pattern: Flyweight》

23个设计模式的简明教程相关推荐

  1. Java23个设计模式的简明教程

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  2. 设计模式23种通熟解释和简明教程

     1.factory(工厂)追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德 基,只管向服务员说"来四个鸡翅" ...

  3. CGIC简明教程(转摘)

    CGIC简明教程 本系列的目的是演示如何使用C语言的CGI库"CGIC"完成Web开发的各种要求. *********************************     基础 ...

  4. 23 种设计模式实战 pdf(很全)

    今天分享一份学习资料:23 种设计模式实战教程.pdf,助你快速上手设计模式,写出各种高端代码,文末附下载地址. 设计模式一般分为三大类: 实战教程: 教程共 96 页PDF,太全了!纯粉丝福利,非广 ...

  5. 高等学校计算机规划教程,高等学校计算机应用规划教材:计算机组成原理简明教程...

    高等学校计算机应用规划教材:计算机组成原理简明教程 语音 编辑 锁定 讨论 上传视频 <高等学校计算机应用规划教材计算机组成原理简明教程>是2009年清华大学出版社出版的图书,作者是石磊. ...

  6. 23种设计模式详解_太厉害了,清华大牛一个坦克项目就把23种设计模式给抽丝剥茧了...

    坦克大战项目 坦克大战项目通过一个联机对战游戏的手把手,一行一行的开发过程,让你精准的理解和运用JavaSE,DesignPatterns , TCP/IP, 多线程, NIO等基础知识.真正理解项目 ...

  7. Linux/Unix系统下nginx+php安装简明教程

    本文转载自Linux/Unix系统下nginx+php安装简明教程,请保留转载信息~ 一.安装nginx: 1. 安装pcre库,nginx的rewrite模板需用到pcre库: mkdir -p / ...

  8. 设计模式——23种设计模式学习总结

    声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改. 系列文章目录 简单工厂模式 策略模式模式 装饰模式(进行中) 代理模式(进行中) 工厂方法模式 ...

  9. 【软考 系统架构设计师 简明教程】简介与目录

    为了不辜负已经订阅了专栏的同学们的信任,所以本专栏不会有任何的优惠活动. 另外,当订阅人数每次达到2n(n>2)2^n(n>2)2n(n>2)时,订阅价格将会上涨10元. 所以,当下 ...

最新文章

  1. NASA艾姆斯研究中心将跟Uber团队展开合作
  2. 【转】QString 与中文问题
  3. 自动档车正确起步方法,自动挡开车起步7个步骤
  4. 语音跟踪:信号分解、锁相、鸡尾酒会效应、基于PR的信号分离
  5. 一个openMP编程处理图像的示例
  6. 简单分析STM32和51的区别
  7. 总结与整理:Ubuntu系统下安装、配置Nginx及其他注意事项
  8. Java线程(七):锁对象Lock-同步问题更完美的处理方式 .
  9. python 40位的数减个位数_Python数据分析入门教程(五):数据运算
  10. __attribute__((unused)):可能不会用到,消除编译警告
  11. 1.14 关于梯度检验实现的注记
  12. python画哆啦a梦图片_画了个多啦A梦,但是感觉怪怪的
  13. java画函数图像_怎么用java绘制函数图像
  14. 团队-科学计算器-项目总结
  15. 收藏!全国计算机二级 Python 题库破解
  16. 百度地图离线开发V2.0
  17. python爬数据处理\ufeff、\xa0、\u3000的方法 (转载)
  18. 泉州程序员置业小指南
  19. Python入门到精通(4):关系与逻辑表达式
  20. 微信小程序 - 一键复制功能

热门文章

  1. 【论文笔记】Incorporating Learnable Membrane Time Constant to Enhance Learning of SNN
  2. 屏幕分享(演示手机投影到PC端)TotalControl
  3. 笔记 | 数据分析产品未来范式的小结(增强分析、智能交互等)
  4. C++经典算法题-迭代法求方程根
  5. 【Python】学习笔记 #1 —— 爬取网页筛选数据全过程
  6. 【ZYNQ】黑金教程_OV5640加LCD显示实验的Bug分享
  7. 浪潮信息人工智能巨量模型“源1.0”,切实促进AI行业高质量发展
  8. OCR:光学字符识别技术
  9. 企业面试题|最常问的MySQL面试题集合(一)
  10. 字符串训练 ----- UVA 10815题目Andy's First Dictionary