首页 > 代码库 > 设计模式学习总结系列应用实例
设计模式学习总结系列应用实例
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的中介者
设计模式学习总结系列应用实例