1.单例模式
应用实例:1.一个党只能有一个主席.2.Windows是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。3.一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。
2.工厂模式
应用实例:1.你需要一辆汽车,你可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现 2.Hibernate换数据库只需换方言和驱动就可以
3.抽象工厂
应用实例:工作了,为了参加一些聚会,肯定有两套或多套衣服吧,比如说有商务装(成套,一系列具体产品)、时尚装(成套,一系列具体产品),甚至对于一个家庭来说,可能有商务女装、商务男装、时尚女装、时尚男装,这些也都是成套的,即一系列具体产品.咱们假设一种情况(现实中是不存在的,要不然,没法进入共产主义了,但有利于说明抽象工厂模式),在你的家中,某一个衣柜(具体工厂)只能存放某一种这样的衣服(成套,一系列具体产品),每次拿这种成套的衣服时也自然要从这个衣柜中取出了.用OO的思想去理解,所有的衣柜(具体工厂)都是衣柜类的(抽象工厂)某一个,而每一件成套的衣服又包括具体的上衣(某一具体产品),裤子(某一具体产品),这些具体的上衣其实也都是上衣(抽象产品),具体的裤子也都是裤子(另一个抽象产品).
4.建造者模式
应用实例:1.去肯德基,汉堡,可乐,薯条,炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的“套餐”2.JAVA中的StringBuilder
5.原型模式
应用实例:1.细胞分裂 2.JAVA中的Object clone()方法
6.适配器模式
应用实例:1.美国电器110V,中国220V,就要有一个适配器将110V转化为220V 2.JAVA JDK 1.1提供了Enumeration接口,而在1.2中提供了Iterator接口,想要使用1.2 的JDK,则要将以前系统的Enumeration接口转化为Iterator接口,这时就需要适配器模式 3.在LINUX上运行WINDOWS程序 4.java中的jdbc
7.组合模式
应用实例:1.算术表达式包括操作数、操作符和另一个操作数,其中,另一个操作符也可以是操作树,操作符和另一个操作数 2.在JAVA AWT和SWING中,对于Button和Checkbox是树叶,Container是树枝
8.装饰模式
应用实例:1.孙悟空有72变,当他变成“庙宇”后,他的根本还是一只猴子,但是他又有了庙宇的功能 2.不论一幅画有没有画框都可以挂在墙上,但是通常都是有画框的,并且实际上是画框被挂在墙上。在挂在墙上之前,画可以被蒙上玻璃,装到框子里;这时画、玻璃和画框形成了一个物体。
9.代理模式
应用实例:1.windows里面的快捷方式 2.猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外貌抽象出来,高翠兰本人和孙悟空都实现了这个接口,猪八戒访问高翠兰的时候看不出来这个是孙悟空,所以说孙悟空是高翠兰代理类。3.买火车票票不一定在火车站买,也可以去代售点 4.一张支票或银行存单是账户中资金的代理。支票在市场交易中用来代替现金,并提供对签发人账号上资金的控制。 5.spring aop
10.享元模式
应用实例:1.JAVA中的String,如果有则返回,如果没有则创建一个字符串保存在字符串缓存池里面 2.数据库的数据池
11.门面模式
应用实例:1.去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便 2.JAVA的三层开发模式
12.桥接模式
应用实例:1、猪八戒从天蓬元帅转世投胎到猪,转世投胎的机制将尘世划分为两个等级,即:灵魂和肉体,前者相当于抽象化,后者相当于实现化。生灵通过功能的委派,调用肉体对象的功能,使得生灵可以动态的选择 2、墙上的开关,自己可以看到的开关是抽象的,里面具体怎么实现我们不管 
13.策略模式
应用实例:1、诸葛亮的锦囊妙计,每一个锦囊就是一个策略 2、旅行的出游方式,选择骑自行车、坐汽车每一种旅行方式都是一个策略 3、JAVA AWT中的LayoutManager
14.模板方法模式
应用实例:1、在造房子的时候,地基、走线、水管都一样,只有在建筑的后期才有加壁橱加栅栏等差异  2、西游记里面菩萨定好的81难,这就是一个顶层的逻辑骨架 3、Spirng中对Hibernate的支持,将一些已经定好的方法封装起来,比如开启事务、获取Session、关闭Session等,程序员不重复写那些已经规范好的代码,直接丢一个实体就可以保存
15.观察者模式
应用实例:1、拍卖的时候,拍卖师观察最高标价,然后通知给其他竞价者竞价 2、西游记里面悟空请求菩萨降服红孩儿,菩萨洒了一地水招来一个老乌龟,这个乌龟就是观察者,他观察菩萨洒水这个动作
16.迭代器模式
应用实例:JAVA中的iterator
17.责任链模式
应用实例:1、红楼梦中的“击鼓传花”2、JS中的事件冒泡 3、JAVA WEB中 Apache Tomcat 的对Encoding的 处理,Struts2 的拦截器, jsp servlet 的Filte
18.命令模式
应用实例:struts  1中的action 核心控制器ActionServlet只有一个,相当于Invoker,而模型层的类会随着不同的应用有不同的模型类,相当于具体的Command
19.备忘录模式
应用实例:1、后悔药 2、打游戏时的存档 3、Windows里的ctri + z  4、IE中的后退 4、数据库的事务管理 5、WEB中的SESSION和COOKIE 6、孙悟空将人参树推到,后求助于观音,观音撒了几滴水,数九附后了,其中孙悟空是发起人,人参树是具体对象(Originator),那几滴水是备忘录角色(Memento),观音是负责人角色(Caretaker)
20.状态模式
应用实例:1、打篮球的时候运动员可以有正常状态,不正常状态,和超常状态 2、曾侯乙编钟中,‘钟是抽象接口’,‘钟A’等是具体状态,'曾侯乙编钟'是具体环境(Context)
21.访问者模式
应用实例:你在朋友家做客,你是访问者,朋友接受你的访问,你通过朋友的描述,然后对朋友的 描述做出一个判断,这就是访问者模式
22.解释器模式
应用实例:编译器、运算表达式计算
23.中介者模式
应用实例:1 、中国加入WTO,之前是各个国家相互贸易,结构复杂,现在是各个通过WTO来互相贸易 2、机场调度系统 3、 MVC框架,其中C(控制器)就是M和V的中介者

设计模式学习总结系列应用实例相关推荐

  1. 步步为营 .NET 设计模式学习笔记系列总结

    设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意 ...

  2. 设计模式学习笔记(目录篇)

    设计模式学习笔记(目录篇) 为了方便查看,特此将设计模式学习笔记系列单独做一个目录. 1   设计模式学习笔记(一:命令模式) 2   设计模式学习笔记(二:观察者模式) 3   设计模式学习笔记(三 ...

  3. 设计模式学习系列6 原型模式(prototype)

    原型模式(prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.允许一个对象再创建另外一个新对象的时候根本无需知道任何创建细节,只需要请求圆形对象的copy函数皆可. 1 ...

  4. BizTalk学习笔记系列之二:实例说明如何使用BizTalk

    BizTalk学习笔记系列之二:实例说明如何使用BizTalk --.BizTalk学习笔记系列之二<?XML:NAMESPACE PREFIX = O /> Aaron.Gao,2006 ...

  5. 设计模式学习笔记--Flyweight享元模式

    Flyweight模式也叫享元模式,是由GoF提出的23种设计模式中的一种.Flyweight模式是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用,所以叫享元.   此模式解决的是由于大量 ...

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

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

  7. 设计模式学习笔记--享元(Flyweight)模式

    写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方案,这就是软件模式:每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案:当我们碰到模式 ...

  8. 设计模式学习资料(持续更新)

    文章目录 设计模式学习资料(持续更新) 前言 图书 设计模式分类 设计模式目录 设计模式所支持的设计的可变方面 什么时候需要用到设计模式 面向对象设计(OOD) OOD基础 OOD原则 参考文档 云设 ...

  9. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

最新文章

  1. Matlab中disp、fprintf和sprintf
  2. 配置PHP启动Apache服务报错
  3. jdbc获取数据库元数据,获取数据库列表,获取数据库基本信息,获取指定数据库中的表信息,获取指定表中的字段信息
  4. 有道智云智能语音服务全面升级 最多可支持44种语言和方言
  5. TensorFlow-Serving的使用实战案例笔记(tf=1.4)
  6. 先安装windows7_64bit,再安装Centos7,windows7的启动项不出现
  7. lambda表达式python_python lambda表达式用法
  8. MATLAB-典型动态系统建模与仿真
  9. 计算机底层逻辑无法仿造大脑,重塑世界的底层逻辑|读《终极算法》
  10. win10声卡驱动问题:未检测到任何音频设备
  11. 小三角箭头向下向上查看隐藏的效果 vue
  12. python学习笔记--缓解眼睛疲劳的小工具
  13. Linux下设置MTU值到9000
  14. 2022年氧化工艺考试练习题模拟考试平台操作
  15. 侏儒、精灵、巫师和国王
  16. 分享 | 一份小小的信念
  17. 汉堡包菜单_神圣的汉堡包!
  18. 微信群控取代传统微信营销模式,营销优势有哪些?
  19. Caused by: hudson.plugins.git.GitException: Command “git fetch --tags --progress -- https://github.
  20. SQL Server DBCC

热门文章

  1. ps界面为啥突然变大了_对新手非常友好的5个PS小技巧
  2. 【Unity】让动画系统支持相对坐标
  3. crawlergo带cookie爬虫
  4. uniapp开发小程序,引入腾讯兔小巢插件,兔小巢页面导航头部样式错乱问题
  5. 关于IP地址、网络号、主机号、子网掩码之间的关系
  6. MarkdownPad2 的基本使用
  7. Django实现adminx后台识别用户身份的内容编辑与显示
  8. 用计算机计算工资的公式,工资、薪金所得个人所得税Excel计算公式(正算)
  9. 【SolidWorks】模型状态显示设置介绍
  10. 西南科技大学计算机专业全国排名,西南科技大学为什么在全国大学排名很低?...